NEWS
Material Design Widgets: Value Widget
-
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" }
-
sorry - diesmal hatte ich einen fehler drin
{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" }
-
@liv-in-sky sagte in Material Design Widgets: Value Widget:
sorry - diesmal hatte ich einen fehler drin
Jupp, es kommt Run
Ich sehe auf den 1.Blick keinen Unterschied
-
@sigi234 dann nutz den zweiten - === ist jetzt ==
und am ende fehlte : no-no - sonst ist die formel nicht richtig -
@liv-in-sky sagte in Material Design Widgets: Value Widget:
@sigi234 dann nutz den zweiten - === ist jetzt ==
und am ende fehlte : no-no - sonst ist die formel nicht richtigUm es zu verstehen, wie kommst du auf : no-no
-
@sigi234 das no-no kann auch irgendwas andres sein -es geht darum , dass
mmm ? "nnn" : "yyy"
wenn mmm dann nnn sonst yyy
wenn du nun immer wieder statt yyy eine weitere abfrage reingibst, fehlt am ende ein
: yyy
die formel ist dann nicht fertig - man nennt das auch einen defaultwert - wenn alles davor nicht paßt, wird yyy eingesetzt - ich habe einfach no-no genommen - da kann auch "" stehen,
normalerweise bringt der adapter genaudie 4 werte - daher wirst du no-no nie sehen werden !
-
@liv-in-sky
@Scrounger
@sigi234war ne schwere Geburt, aber nun funktioniert es! @liv-in-sky - tolle Erklärung, nun habe ich es vollends verstanden und in mein kleines Wiki verewigt!
DANKE.
-
ich muss leider die Flagge wieder runter ziehen, zu früh gefreut.
Mit dem Datenpunkt, so wie du ihn aufbereitet hast, funktioniert es bei 3 Geräten einwandfrei. Hier wird der Gerätezustand angezeigt, klappt perfekt.Nun wollte ich auf die identische Art und weise die aktiven Programme visualisieren.
Der DP heist (RAW):
{ "type": "state", "common": { "name": "BSH_Common_Root_ActiveProgram", "type": "string", "role": "indicator", "write": true, "read": true, "states": { "Cooking.Oven.Program.HeatingMode.HotAirEco": "Heißluft eco", "Cooking.Oven.Program.HeatingMode.TopBottomHeatingEco": "Ober-/ Unterhitze eco", "Cooking.Oven.Program.HeatingMode.PizzaSetting": "Pizzastufe", "Cooking.Oven.Program.HeatingMode.IntensiveHeat": "Intensivhitze", "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.HotAirGrilling": "Umluftgrillen", "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.FrozenHeatupSpecial": "coolStart-Funktion", "Cooking.Oven.Program.HeatingMode.KeepWarm": "Warmhalten" } }, "native": {}, "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1616709638385, "_id": "homeconnect.0.SIEMENS-CN878G4B6-68A40E0542E8.programs.active.BSH_Common_Root_ActiveProgram", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Nun habe ich, das Widget wie folgt beschrieben:
{val:homeconnect.0.SIEMENS-CN878G4B6-68A40E0542E8.programs.active.BSH_Common_Root_ActiveProgram; val== "Cooking.Oven.Program.HeatingMode.PizzaSetting": ? "Pizzastufe" : "no-no" }
Nach Scrougers Ratschlag, erstmal einen Zustand zu testen und dan zu erweitern, war richtig und gut. Deshalb habe ich nur die Pizzstufe drin, kann es auch gerade testen, weil der Backofen an ist.
Nur in der VISU kommt wieder eine NULL!
Würdest bitte noch mal einen Blick auf das Binding werfen? -
@ub-privat der ":" vor dem "?" nach pizzasetting gehört da nicht hin gehört
du kannst in chrome die entwicklertools öffnen und auf console-tab siehst du sofort beim laden, ob du ein symantisches problem hast