NEWS
Object in State speichern und abrufen.
-
Ich würde gerne einen State definieren, der ein Object beinhaltet.
Ist das möglich?
Beispiel
createState("Test_Object", { name: "Test_Object", read: true, write: true, desc: 'State der ein Object enthält', type: 'object' }); setState("Test_Object",{"eins":0,"zwei":1}); var test = getState("Test_Object").val; log(test.eins);Leider bekomme ich bei dem Beispiel eine Ausgabe mit null.
Mein Workarround ist mit Stringify aus einem Object ein String zu machen und den dann in dem Eventhandler mit JSON.parse zu parsen.
Aber vielleicht geht das ja auch direkt.
-
Objekte können nicht als val übergeben werden, da nicht von der https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#how-to-write-state
setState(id, {val: 1, ack: true});unterschieden werden kann.
-
Anmerkung: Der Test sollte in der Callback-Funktion von setState() erfolgen, da das Skript sonst zweimal gestartet werden muss, damit der Test einen gültigen Wert erhält.
var meinObjekt = {"eins":0,"zwei":1}; setState("Test_Object", {val: meinObjekt, ack: true}, function() { var test = getState("Test_Object").val; log(test.eins); }); -
Danke.
Ich finde die Schreibweise, siehe Beispiel, ganz praktisch und sehe nette Anwendungen.
setState("Test2Speech",{val:{"text":"Hallo World","vol":1,"device":"Bad"}}); on({id: "Test2Speech", change: "any"}, function (obj) { parms = obj.state.val; log("Dieser Text soll ausgegeben werden: " + parms.text); log("mit dieser Lautstärke: " + parms.vol); log("auf diesem Lautsprecher: " + parms.device); .... })
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