NEWS
Object als States speichern
-
Hallo zusammen,
ich habe mich dumm und dusselig gesucht, um ein js Object als States zu speichern.
Mein Anwendungsfall ist die Berechnung einer Lüftungsempfehlung für meine Räume.
Dabei möchte ich neben der Empfehlung auch die dazu verwendeten Werte speichern.Da ich nichts gefunden habe, habe ich ein kleines Snippet gecoded, welches ein Objekt mit primitiven Eigenschaften speichern kann. Dabei wird jede Eigenschaft als einzelner State gespeichert.
function setObjectAsStates(path, obj){ for (let key in obj) { if (obj.hasOwnProperty(key)) { var id = `${path}.${key}`; if(existsState(id)){ setState (id, obj[key], true); }else{ createState(id, obj[key] , { read:true, write:true, desc:"", type: typeof obj[key] }); } } } } //Anwendung const userState = '0_userdata.0' var path = `${userState}.testObject`; let calcResult = { absulute_humidity_outside:0, absulute_humidity_inside:0, absulute_humidity_difference:0, temperature_outside:0, temperature_inside:0, recommendationString:"", recommendation:0, dateString: date.toISOString(), ts: date.getTime() / 1000 }; setObjectAsStates(path, calcResult);
Ich hoffe damit kann ich jemanden helfen.
Falls es eine elegantere Lösung gibt, bin ich für Vorschläge offen.
Gruß
Basti -
Hast du das gefunden / getestet:
state type JSON
Und Daten als stringified json ablegenhttps://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#state
Kommt aber drauf an was du mit dem State machen willst ...
-
@mcm1957
Danke, dass ist auch eine Idee.
Ich probieren beides mal aus.
Mal sehen wie sich das Auslesen in der UI anfühlt.