NEWS
States in bindings
-
Re: Bindings in vis
Ich such mir grade einen Wolf wegen States in Bindings
Wie kann ich in Bindings die States anstatt den Wert anzeigen ? Ich habe folgendes Objekt :{ "type": "state", "common": { "name": "AutoRueckkuehl", "type": "number", "min": 0, "max": 1, "role": "value", "read": true, "write": true, "states": { "0": "Off", "1": "On" } }, "native": {}, "from": "system.adapter.resol.0", "user": "system.user.admin", "ts": 1612007477678, "_id": "resol.0.0011210010.write.AutoRueckkuehl", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }Ein Binding mit
{resol.0.0011210010.write.AutoRueckkuehl}zeigt mir aber nur 0 und 1 , ich möchte aber on und off angezeigt haben
-
@gargano
probier mal{state:resol.0.0011210010.write.AutoRueckkuehl,parseInt(state)==0?"Off"":"On"}@oliverio Da zeigt er mir "undefined".
Aber gibt es nicht in den Bindings so etwas wie displayvalue ?
Ich habe an anderer Stelle auch andere States :
"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" } -
@oliverio Da zeigt er mir "undefined".
Aber gibt es nicht in den Bindings so etwas wie displayvalue ?
Ich habe an anderer Stelle auch andere States :
"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" } -
@gargano
War mein Fehler, das muss ein strichpunkt sein:{state:resol.0.0011210010.write.AutoRueckkuehl;parseInt(state)==0?"Off"":"On"} -
@oliverio sagte in States in bindings:
{state:resol.0.0011210010.write.AutoRueckkuehl;parseInt(state)==0?"Off"":"On"}
Danke , ich such aber nach einer allgemein gültigen Lösung. Gibt es da nichts ?
äh, ja, klar, ich dachte die hattest du schon durch.
in vis gibt es die widgets
einfach links in die suchleiste bool eingeben
dann das widget bool html auswählen
dann den datenpunkt auswählen
dann eintragen was du sehen möchtest wenn false und wenn true
also Off und On
fertig -
äh, ja, klar, ich dachte die hattest du schon durch.
in vis gibt es die widgets
einfach links in die suchleiste bool eingeben
dann das widget bool html auswählen
dann den datenpunkt auswählen
dann eintragen was du sehen möchtest wenn false und wenn true
also Off und On
fertig -
@oliverio Danke für den Tip.
Ich dachte eher an sowas :{state:resol.0.0011210010.write.AutoRueckkuehl;displayValue(state)}Aber sowas gibt es anscheinend nicht.
woher soll die Funktion dann wissen was du angezeigt haben möchtest?
On/Off sind in iobroker Alternativ bezeichnungen für bool-Werte
0/1, true/false. On/Offdann habe ich noch nicht verstanden was du erreichen möchtest.
Beide vorgestellten Lösungen machen das was du geschrieben hast.
einmal mit einem einfachen js-Konstrukt direkt als Binding und zum anderen
ein widget, wo man gar keine programmierkenntnisse braucht.
Was benötigst du darüber Hinaus noch?Suchst du den serienmäßig eingebauten Kaffeevollautomat im neuen Auto?
Du kannst natürlich ein deinem script-Reiter in vis eine solche Funktion definieren
und die im Binding auch verwenden.Die Funktionen, die vis selbst in Bindings zur Verfügung stellt ist hier beschrieben
https://github.com/ioBroker/ioBroker.vis -
woher soll die Funktion dann wissen was du angezeigt haben möchtest?
On/Off sind in iobroker Alternativ bezeichnungen für bool-Werte
0/1, true/false. On/Offdann habe ich noch nicht verstanden was du erreichen möchtest.
Beide vorgestellten Lösungen machen das was du geschrieben hast.
einmal mit einem einfachen js-Konstrukt direkt als Binding und zum anderen
ein widget, wo man gar keine programmierkenntnisse braucht.
Was benötigst du darüber Hinaus noch?Suchst du den serienmäßig eingebauten Kaffeevollautomat im neuen Auto?
Du kannst natürlich ein deinem script-Reiter in vis eine solche Funktion definieren
und die im Binding auch verwenden.Die Funktionen, die vis selbst in Bindings zur Verfügung stellt ist hier beschrieben
https://github.com/ioBroker/ioBroker.vis@oliverio
Soweit ich verstanden habe gibt der Binding nur den Wert wider.
Geh mal weiter oben zu dem 'Cooking.Oven.Program..' Beispiel.
Was ich haben möchte ist z.B. 'Sanftgaren' anstatt 'Cooking.Oven.Program.HeatingMode.SlowCook'Ich kann natürlich da ein Script machen in der Art :
let Status1 = getState(dpID).val; let Obj = getObject(dpID); console.log ('State : '+Obj.common.states[Status1]);Aber ich dachte evtl. gibt es eine Funktion in den Bindings ....
-
@oliverio
Soweit ich verstanden habe gibt der Binding nur den Wert wider.
Geh mal weiter oben zu dem 'Cooking.Oven.Program..' Beispiel.
Was ich haben möchte ist z.B. 'Sanftgaren' anstatt 'Cooking.Oven.Program.HeatingMode.SlowCook'Ich kann natürlich da ein Script machen in der Art :
let Status1 = getState(dpID).val; let Obj = getObject(dpID); console.log ('State : '+Obj.common.states[Status1]);Aber ich dachte evtl. gibt es eine Funktion in den Bindings ....
ah ok, du willst werte mappen aus ein oder mehreren datenpunkten.
leider kenn ich den home connect adapter nicht.mein vorschlag:
stell mal nochmal einen neuen thread ein und stell die Frage mal anders,
evtl kennt noch jemand da eine möglichkeit. ich glaube da gibt es sowas wie enums, aber das habe ich selbst nie verwendet.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden