NEWS
[gelöst] Wärmepumpe anbinden - Daten aus JSON einlesen
-
In der Log-Wiedergabe sehe ich eine öffnende eckige Klammer aber keine schließende.
Wenn es ein Array ist, dann für den Wert "3.00"
var t_ext = JSON.parse(result)[0].resp; // liefert Zeichenkette
-
Danke für die schnelle Antwort, ich hab das gerade ausprobiert. Es kommt wieder die Fehlermeldungen, die mir aus diversen Versuchen schon bekannt ist:
// Werte aus Heizung abfragen schedule("* * * * *", function (werte, t_ext) { exec("python3 /usr/share/pyHPSU/bin/pyHPSU.py -d PYCAN -c t_ext -c flow_rate -o JSON", function (error, result) { console.log(result); var t_ext = JSON.parse(result)[0].resp; console.log(t_ext); }); });
liefert
15:25:02.841 [info] javascript.0 script.js.common.HPSU_java: [{'resp': '2.70', 'timestamp': 1545229502.640406, 'name': 't_ext'}, {'resp': '0.0', 'timestamp': 1545229502.657885, 'name': 'flow_rate'}] 15:25:02.842 [error] javascript.0 SyntaxError: Unexpected token ' in JSON at position 2 at Object.parse (native) at script.js.common.HPSU_java:9:22 at ChildProcess.exithandler (child_process.js:190:7) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:191:7) at maybeClose (internal/child_process.js:920:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)
Deshalb habe ich eine Weile den Anstaz verfolgt, die ' gegen " zu ersetzen, bin damit aber auch gescheitert.
-
probier mal :
`// Werte aus Heizung abfragen schedule("* * * * *", function (werte, t_ext) { exec("python3 /usr/share/pyHPSU/bin/pyHPSU.py -d PYCAN -c t_ext -c flow_rate -o JSON", function (error, result) { console.log(result); var i; for (i in result){ console.log(result[i].name }); });` [/i]
-
Deshalb habe ich eine Weile den Anstaz verfolgt, die ' gegen " zu ersetzen, bin damit aber auch gescheitert. `
Versuche es mal so:var json = result.replace(/\'/g,'\"'); var obj = JSON.parse(json); log(obj[0].resp);
-
Habs gerade ausprobiert….das liefert jede Menge undefiends (vermutlich für jede Stelle in result?)
17:25:02.639 [info] javascript.0 script.js.common.HPSU_java: undefined 17:25:02.639 [info] javascript.0 script.js.common.HPSU_java: undefined 17:25:02.639 [info] javascript.0 script.js.common.HPSU_java: undefined 17:25:02.640 [info] javascript.0 script.js.common.HPSU_java: undefined
-
Habs gerade ausprobiert….das liefert jede Menge undefiends (vermutlich für jede Stelle in result?) `
das beispiel von paul oder mir ? Wen das meine dan lasse mal .name weck also nur result
-
hier mal beispiel aus source code eines adapters welche ich gerade bauen
`const test_obj = [ { "Device": "discovergy.0.1024000034.Power_Total", "alias": "Device_1", "unit": "kWh", "days": 7, "weeks": 4, "quarters": 4, "months": 12, "years": 1 }, { "Device": "discovergy.0.1030002797.Power_Total", "alias": "Device_2", "unit": "kWh", "days": 7, "weeks": 4, "quarters": 4, "months": 12, "years": 1 } }]; for (const i in state_list){ console.info("Value i : " + state_list[i].device));` weis jetzt nicht ob der Javascript adapter const acceptiert, sonst aendern nach var[/i]
-
Danke paul, dein Vorschlag hat funktioniert:
Versuche es mal so:
var json = result.replace(/\'/g,'\"'); var obj = JSON.parse(json); log(obj[0].resp); ```` `
Ich werde nun versuchen, die Vairablen mit Datenpunkten zu verknüpfen…sollte ja nicht so schwierig sein :? . Vielen Dank für die schnelle und kompetente Unterstützung! Wenn ich fertig bin, stelle ich das Ergebnis hier zur Verfügung....im Forum hatten vor einger Zeit schonmal Leute nach einer Anbindung der Rotex HPSU gefragt, könnte also auch für andere interessant sein.
-
Vorschlag hat funktioniert: `
Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst]. -
Danke paul, dein Vorschlag hat funktioniert:
Ich werde nun versuchen, die Vairablen mit Datenpunkten zu verknüpfen…sollte ja nicht so schwierig sein :? . Vielen Dank für die schnelle und kompetente Unterstützung! Wenn ich fertig bin, stelle ich das Ergebnis hier zur Verfügung....im Forum hatten vor einger Zeit schonmal Leute nach einer Anbindung der Rotex HPSU gefragt, könnte also auch für andere interessant sein. `
Eine Anbindung der Rotex HPSU (nur zur Datendarstellung in iobroker) fehlt mir auch noch. Habe einen Raspi mit Canbus Interface und möchte darüber die Daten erfassen und für iobroker bereitstellen. Bin aber noch ganz am Anfang.