JSON Abfrage - Daten weiterverarbeiten

Hallo liebes Forum,

Ich bin ja absoluter Anfänger was eine Node-blue Programmierung angeht.
Eigentlich komme ich aus der SPS-Seite, aber auch hier bin ich schon lange weg!

Mittlerweile habe ich ja schon ein paar Dinge mit der Smartha geschafft.
Nun hänge ich aber am nächsten Punkt:
Meine 2 Wechselrichter können Daten über JSON ausgeben. Den Aufruf dafür habe ich ja schon geschafft.
Auch von der smartha raus.
Aber im payload steht „NULL“
Ich hätte gerne den PAC Value ausgegeben, aber ich schaff es einfach nicht!

Freue mich über eure Hilfe

flows.json (1001 Bytes)

Der ganz einfache Flow dafür

Hi, erstmal die frage welche wechselrichter hast du den ?
Du kannst auch den Json Switch nehmen dort ist es möglichkeit direkt den Payload auszuwählen.

image

Dann kommt jeweils am Ausgang nur der wert raus.

Das ist jetzt für dein flow du benötigst natürlich keine 2x Debug das ist nur für das Verständnis für mein oberes Bild.

image

Gruß
Michael

Ich verwende einen ähnlichen flow um die Daten per API der Sonnenbatterie abzufragen, aber ich muste „Input ist ein Objekt“ einstellen.

grafik

1 „Gefällt mir“

Du hast recht den Hacken hatte ich vergessen :slight_smile: Danke

Gruß
Michael

Danke vorerst für eure Antworten.
Nichts desto trotz kommt bei mir bei payload „null“ raus!

@mlandherr Fronius symo, und solange das Modul noch im Beta ist, wollte ich ein workaround

vielleicht ist ja die api anfrage falsch?
[IP/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=1&DataCollection=CommonInverterData]

link mal den http-request un ein debug node. Dann sieht du ob was der request ausgibt.
Die api anfrage ist aber richtig.

image

So sieht es bei mir aus

Hi,
was Volker meinte ist das du es so machst:
image

damit siehst du direkt was aus dem http request ankommt ( und die API funktioniert ) und kannst dann auch sehen wie es ausgewertet wird.
Leider funktioniert dieser Befehl bei dem Fronius auf dem ich zugriff habe nicht daher kann ich es nicht testen.

Zusätzlich kannst du auch noch angeben das es ein json objekt ist in der httprequest node

image

Gruß
Michael

Ich habe das mal ausprobiert. Die Werte des payload sind untergliedert.
Ich denke das man den Json Switch nicht verwenden kann.

Die API gibt das aus.
grafik

@Michael, ich denke dass man die unter Objekte nur in einer template node ausgeben kann nur mir fällt gerade nicht den Syntax ein.
Oder liege ich da falsch. Geht es auch der Json Switch node.
Volker

Hi bei der json node kannst du auch unter kategorien machen:
Body.Data.DAY_ENERGY usw. Das sollte eigentlich gehen.

Das Payload ist dann klar weg das wird ja automatisch gemacht.

@mlandherr
Danke hab ich mir fast gedacht.
Ändert aber nichts an der Geschichte. Denn vom Request aus kommen die Daten richtig daher.
Jetzt wäre es noch schön, wenn ich diese Daten irgenwie in ein virtuelles Gerät packen kann, bzw. weiterverarbeiten.

Da gibt es mehrere möglichkeiten einmal über den json switch oder das sogar das json Device hier mal etwas von mir:
image

Dort habe ich auch einen Temperatur sensor der Ankommt als json und setze es dann direkt in ein virtuelles Device lediglich den Batterie wert muss ich umrechen und weiterverarbeiten.

image

Das Virtuelles Device muss natürlich vorher angelegt werden.

PS: zur info die Outputs muss man von Hand umbennen geht leider nicht automatisch :wink:

Ich glaub mein Fehler liegt einfach im Aufruf.
Da der Wert PAC ja nicht direkt am payload ist, sondern dort noch weiter untergeordnet
image

Das ist wie gesagt ganz einfach du kannst die untersektionen einfach mit einem . machen.
Also in deinem fall dann Body.Data.PAC.Value das sollte wenn ich mich recht erinnere eigentlich gehen gehen.

1 „Gefällt mir“

Ja nun klappt auch mit dem „json switch“… :+1:
grafik

grafik

Danke Michael

2 „Gefällt mir“

Wir kommen der Sache schon näher!
Wenn ich jetzt einen JSON Switch auf Body.Data.PAC setzte, habe ich im Payload nur mehr Unit und Value.
JSON Switch mit Body.Data.PAC.Value ergibt wieder NULL als payload
Nehme ich ein Template und werte Body.Data.PAC.Value aus. Habe ich den Wert!!!

Nun stehe ich vor der nächsten Frage:
Welches virtuelle Gerät kann das Anzeigen was ich möchte?
VirtuellPowerMeter funktioniert nicht. Da bekomm ich keine Werte angezeigt.
Und in eine Variable schieben funktioiert auch nicht so recht.
Hab zwar den Wert in der Variablen kann ihn aber nicht in der smartha Raumübersicht anzeigen.

in meinem Fall geht klappt es mit beiden nodes…

grafik

der request steht so…

grafik

1 „Gefällt mir“

Super danke Volker das du schon geantwortet hast ;),
ich war gerade anders beschäftigt und habe gerade erst wieder ins Forum geschaut ;).