NEWS
[gelöst] Blockly json wert
-
hallo,
ich versteh es einfach nicht!
habe versucht mit den Ergebnissen die ich hier im Forum gefunden habe es hin zu bekommen aber leider ....
ich möchte gerne callee in einen DP schreiben, wie bekomme ich das hin?
-
@bishop
In welchen Datenpunkt willst Du denn schreiben?
Dann solltest Du "schreibe Objekt" verwenden.
Objekte sind ja die Datenpunkte. -
@padrino danke ja das weis ich schon, ich bekomme ja im debug die Ausgabe "undefined" als test.
Wenn der Wert die Nummer wäre würde ich den dann natürlich in ein DP schreiben.
-
@bishop sagte:
callee in einen DP schreiben, wie bekomme ich das hin?
Es handelt sich nicht um eine Liste (array), sondern um ein Objekt.
-
@paul53 Vielen Dank, genau das was ich gesucht habe.
-
Hm, ist das Umwandeln nötig?
Das hier scheint auch zu klappen:
-
@padrino sagte:
Das hier scheint auch zu klappen:
Ja, aber mit Error-Log. Welche weiteren Informationen liefert der Tab "Log" ?
-
@paul53
Nix.
Gibt doch keinen Error, ist doch nur, weil ich den Debug Output auf level "error" stehen habe, das Log ist sonst "sauber". -
@padrino
Blöde Frage, aber das sieht mir arg nach Fritz Adapter aus, da gibt es doch unter inbound direkt diese datenpunkte, warum holst du diese aus der json? -
@padrino
Du hast recht, ich habe es gerade getestet: Man kann kann die Attribute direkt dem JSON entnehmen.var json = {"a":10,"b":[22,"xx"]}; log(json.b[0]); // Log: 22
-
@e-s
das mache ich weil die DP nicht immer geschrieben werden.
So funktioniert mein vorhaben deutlich zuverlässiger. -
-
@padrino sagte:
Habe keine Ahung, worum es genau geht,
Doku zu getAttr():
If the first attribute is string, the function will try to parse the string as JSON string.
-
@bishop
Ups, mal wieder den falschen beim antworten erwischt. Kenne dein Problem und wollte dieses eigentlich dahingehend beseitigen indem ich auf das Klingeln selber triggern wollte, um somit auch bei 2 mal infolge den selben Namen bzw Nummer keine Probleme bekomme. -
@paul53
Ok.Übrigens, wenn man nicht wirklich weiß, was man tut, dann kann man auch 'n "error" erzeugen, denn sowas geht wohl nicht:
Beweis, padrino hat's noch nicht ganz geschnallt.
-
@padrino sagte:
sowas geht wohl nicht:
Bezeichner dürfen nicht mit einer Ziffer beginnen, was hier der Fall wäre, falls es sich nicht um ein Array handelt. Wie sieht das JSON aus ?
-
{ "_id": "0_userdata.0.Garagentor", "type": "state", "common": { "name": "Garagentor", "role": "", "type": "number", "read": true, "write": true, "desc": "Manuell erzeugt", "min": -1, "max": 1, "def": 0, "states": { "0": "in_Bewegung", "1": "offen", "-1": "geschlossen" } }, "native": {}, "from": "system.adapter.admin.0", "ts": 1579877911665, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@padrino sagte:
"0_userdata.0.Garagentor"
"0_userdata.0.Garagentor" ist kein Objekt, sondern ein String. Du hast die Datenpunkt-ID übergeben.
-
@paul53
Jo, hast Recht, ist natürlich nur die ID, die man mit Blockly Übergibt.
Das Objekt selbst geht damit gar nicht...