NEWS
Json verarbeiten
-
Hallo miteinander,
ich bin interessierter Laie/Anwender und würde gerne Werte meiner PV-Anlage in HM verarbeiten. Die Daten werden über den SolarLog300 bereitgestellt.
Diese Daten kann man wohl als JSON Objekte ausgeben.
Unter Linux kann man sich dann z.B. via Curl alle Werte ausgeben lassen:
curl -X POST -H "Content-Type: application/json" -d '{"801":{"170":null}}' 192.168.0.69/getjpDer Befehl gibt bei mir folgende Rückgabe:
{"801":{"170":{"100":"11.11.16 16:32:15","101":257,"102":262,"103":0,"104":407,"105":19466,"106":30730,"107":822005,"108":12972119,"109":23174482,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":16800}}}Laut Anleitung gibt es folgende JSON-Objekte
Ich habe aber gar keine Ahnung:
-wo (Adapter?/Skripte?)und wie ich den curl-Befehl in io.broker anwenden kann
-wie ich die Objekte in Variablen überführen kann, so dass ich
-die Werte später grafisch darstellen kann
-ich die Werte (in der CCU) nutzen kann, um Schaltvorgänge auszulösen.
Ich habe da also schon ganz am Anfang Probleme. Vielleicht hat jemand die Muße, mich in die richtige Richtung zu schubsen…
Danke und Grüße vom Niedrrhein
Little_tiger
-
-
Hallo,
hier eine Lösung für einen anderen Wechselrichter:
-
Hallo und danke für die Antworten!
Mir fehlt irgendwie der erste Schritt.
Muss ich den curl-Aufruf als Skript anlegen?
Mir fehlt gedanklich da die Verbindung.
Gruß
Little_tiger
Gesendet von iPhone mit Tapatalk
-
Hallo und danke für die Antworten!
Mir fehlt irgendwie der erste Schritt.
Muss ich den curl-Aufruf als Skript anlegen?
Mir fehlt gedanklich da die Verbindung. `
Was bekommst Du im Log, wenn Du folgendes probierst:
!
var abfrage = "curl -X POST -H \u0022Content-Type: application/json\u0022 -d '{\u0022801\u0022:{\u0022170\u0022:null}}' 192.168.0.69/getjp"; ! function abfrageStarten() { exec(abfrage, function(err, stdout, stderr) { if (err) { log("Error: " + err,"warn"); return; } log("Ausgabe: " + stdout); ! }); } ! log(abfrage); abfrageStarten(); !ggf. bis zum timeout warten…
-
Hallo ruhr70!
Also, ich habe deinen Befehl als script eingefügt und gestartet. Das LOG zeigt die erhofften Daten! Supi!
javascript.0 script.js.Skript1: Ausgabe: {"801":{"170":{"100":"13.11.16 15:05:45","101":292,"102":210,"103":233,"104":526,"105":4535,"106":11778,"107":90177,"108":7482382,"109":12280141,"110":655,"111":15129,"112":27054,"113":313723,"114":6721113,"115":13248633,"116":9200}}}Nun würde ich gerne die Daten verarbeiten, also z.B.: den Wert der aktuellen Erzeugung ("101":292) und des aktuellen Verbrauchs ("110":819) in eine Variable schreiben und dies dann regelmäßig…
-
Nun würde ich gerne die Daten verarbeiten, also z.B.: den Wert der aktuellen Erzeugung ("101":292) und des aktuellen Verbrauchs ("110":819) in eine Variable schreiben und dies dann regelmäßig… `
Versuche es mal so:var abfrage = "curl -X POST -H \u0022Content-Type: application/json\u0022 -d '{\u0022801\u0022:{\u0022170\u0022:null}}' 192.168.0.69/getjp"; createState("Erzeugung", 0); createState("Verbrauch", 0); function abfrageStarten() { exec(abfrage, function(err, stdout, stderr) { if (err) { log("Error: " + err,"warn"); return; } var pv = JSON.parse(stdout)["801"]["170"]; setState("Erzeugung", pv["101"]); setState("Verbrauch", pv["110"]); }); } setTimeout(abfrageStarten, 100); // Script start schedule("*/1 * * * *", abfrageStarten); // jede Minute -
Hallo paul53,
Danke für deine Antwort. Es klappt, vielen Dank!
Gruß
Little_tiger
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