Seite 1 von 2
Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 7:15 pm
von nofsky
Hallo zusammen,
ich versuche gerade den Solarwatt Energiemanager per JSON anzubinden (will einen anderen Wert auslesen, als bei normaler Einbindung).
Leider verzweifle ich an der JSON Snytax. Könnt ihr mir vielleicht helfen?
URL:
http://IP/rest/kiwigrid/wizard/devices
Json Abfrage für Watt: Hier komme ich nicht weiter
Die URL liefert folgendes zurück:
{"result":{"items":[{"tagValues":{"FractionCPULoadKernel":{"tagName":"FractionCPULoadKernel","guid":"ERC05-00000XXX","value":0.05},.....]}}
Es werden zig Werte gelistet. Wie bekomme ich jetzt die Syntax richtig hin, um einen spezifischen Parameter und dessen Value auszulesen?
Sorry aber ich hänge komplett
Grüße
Nofsky
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 7:44 pm
von derNeueDet
Ausschnitte aus dem JSON bringen nichts.
Stell die komplette JSON Antwort hier in eine Code Block ein.
VG
Det
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 7:58 pm
von nofsky
Die ist ultralang, aber alle Items sind nach dem Muster aufgebaut, was ich gepostet habe. Die gesamte JSON überschreitet das Zeichenlimit...
Hab sie als RTF angehängt...
Danke schonmal!
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 8:12 pm
von derNeueDet
Oh je, nix für eine Sonntag Abend am Handy.
Hast du schon deine Werte identifiziert, die du auslesen willst?
VG
Det
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 8:25 pm
von nofsky
Ja allerdings
Ich würde gern mal mit PowerConsumedFromGrid beginnen, da müsste als Wert 4931.883694412771 ausgelesen werden.
Sobald ich die Logik mal verstanden habe, kann ich mir die anderen glaube ich selbst zusammenbauen. Der Aufbau eines Eintrages ist immer Bezeichnung, "tagname", "guid", "value" - zumindest wenn ich nichts übersehen habe. Dann kommt der nächste.
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 8:41 pm
von rleidner
'[.result.items[7].tagValues.PowerConsumedFromGrid.value]'
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 9:01 pm
von Flocki
Problem ist hier, dass die gleichen Elemente nicht immer den gelichen Index im Array haben. Wenn du einen bestimmten Wert identifizieren willst, musst du also einen Abgleich mit .tagValues.IdName.value machen. Ich weiß nicht, ob das mit dem JSON-Modul geht.
Außerdem solltest du für die Abfrage von mehreren Werten die Seite nicht mehrfach laden. Der Energymanager ist recht schwach auf der Brust, und wenn ein paar Geräte dranhängen bringt man ihn teilwiese selbst mit einer Abfrage je Minute in die Knie.
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 9:19 pm
von nofsky
Vielleicht als Erklärung, warum ich das alles machen möchte:
Wir betreiben in unserem MFH eine IDM WP Anlage (2 Luft Wärmepumpen + 1 Warmwasserwärmepumpe).
Die restl. Haustechnik hängt an einem Zähler, die Wärmepumpen an einem anderem - die Zähler sind kaskadiert. Da IDM Solarwatt nicht unterstützt möchte ich OpenWB nutzen, um den PV Überschuss an die WP zu übermitteln.
Problem ist nur:
IDM gibt per Modbus nur den Verbrauch der Master WP weiter, wenn die beiden anderen laufen ist Verbrauch 0 in OpenWB. Und OpenWB zieht irgendwie zusätzlich den falschen Hausverbrauch/Bezug vom EVU für die zwei Zähler.
Das führt dann dazu, dass bei PV Überschuss die IDM Anlage alle WPs anwirft, weil der Überschuss nicht runtergerechnet wird, sobald die erste WP läuft. Im Ergebnis ist das natürlich Quatsch. Ich weiß aber nicht wie ich das lösen soll.
Im Solarwatt Portal werden die Wärmepumpe übrigens als gesonderter Verbraucher erfasst und das gesamte Grid passt.
Jetzt dachte ich ich zieh mir über das JSON den richtigen Wert, den ich brauche...
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: So Apr 17, 2022 9:41 pm
von derNeueDet
Flocki hat geschrieben: ↑So Apr 17, 2022 9:01 pm
Problem ist hier, dass die gleichen Elemente nicht immer den gelichen Index im Array haben. Wenn du einen bestimmten Wert identifizieren willst, musst du also einen Abgleich mit .tagValues.IdName.value machen. Ich weiß nicht, ob das mit dem JSON-Modul get.
Sowas geht mit einem Select. Sowas mache ich z.B. beim Vzlogger, hier kommen auch mehr Werte als benötigt und ich suche dann aus dem data Array den Eintrag, der die entsprechende uuid hat, heraus.
Code: Alles auswählen
.data[] | select(.uuid=="0265cf40-d42b-11eb-b7e7-3ff66060fa6b")| .tuples[0][1]
VG
Det
Re: Anfängerfrage Solarwatt Energymanager JSON Syntax
Verfasst: Di Apr 19, 2022 9:10 am
von nofsky
Habe es soweit ich sehe hinbekommen!
Danke euch vielmals….!