NEWS
API Daten an Objekte übergeben
-
Hallo Liebes Forum
ich habe null Ahnung von Programmierung, hab aber bisher alles mit Blockly und Hilfe des Forums/ Internets und ausprobieren hin bekommen. aber an der Nummer hier verzweifle ich. könnt ihr mir bitte helfen?
ich ziehe via API Daten im folgenden Format und übergebe sie an ein Objekt im ioBroker. das klappt auch super.
Datenformat:
{"electroneum":"eur":0.00416543,"eur_24h_vol":472399.79720526695,"eur_24h_change":0.24215878531786833}}so, das Objekt hat jetzt also genau diese Zeichenfolge als Wert. wird alle 30 Sekunden aktualisiert.
Jetzt die Frage: Wie kann ich die Einzelnen Werte aus diesem String weiter verarbeiten? ich habe mich daran versuch, drei weitere Objekte zu erstellen und die entsprechenden Werte zu übergeben.
Erfolgloshier ist eine Sache die ich im Netz gefunden hatte und versucht hatte anzupassen.
on("javascript.0.scriptEnabled.ETNAPI", function (obj) { const inhalt = JSON.parse(obj.state.val); setState("javascript.0.scriptEnabled.ETNEUR", inhalt.electroneum.eur true); });
funktioniert nicht. u.a. 8567) script.js.Electroneumtest compile failed: at script.js.Electroneumtest:4
ist das überhaupt ein richtiger und sinnvoller Ansatz oder bin auf dem Holzweg?
ich danke schon mal ganz herzlich
LG
Chris -
@Sopha sagte:
{"electroneum":"eur":0.00416543,"eur_24h_vol":472399.79720526695,"eur_24h_change":0.24215878531786833}}
Das ist ein ungültiges Format, denn es fehlt eine Klammer "{".
{"electroneum":{"eur":0.00416543,"eur_24h_vol":472399.79720526695,"eur_24h_change":0.24215878531786833}}
und bei setState() fehlt vor true ein Komma.
-
danke für die schnelle Antwort.
API angepasst und auf das nötigste reduziert.
sieht jetzt so aus:
{"electroneum":{"eur":0.00420496}}Script korrigiert:
on("javascript.0.scriptEnabled.ETNAPI", function (obj) { const inhalt = JSON.parse(obj.state.val); setState("javascript.0.scriptEnabled.ETNEUR", inhalt.electroneum.eur ,true); });
es läuft ohne Fehler. tut aber nichts.
der Wert wird nicht in ETNEUR gesetzt.
das log ist, abgesehen von dem timestamp wann das script läuft, leer. -
@Sopha sagte in API Daten an Objekte übergeben:
on("javascript.0.scriptEnabled.ETNAPI"
Ich kann zwar kein natives js, aber anscheinend triggerst du auf Aktivierung des Skripts
-
@Sopha sagte:
tut aber nichts.
Es tut erst, wenn sich der Inhalt des Trigger-Datenpunktes ändert.
Keine eigenen Datenpunkte unter "javascript.0.scriptEnabled" erstellen !