Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler in API Abfrage

Fehler in API Abfrage
09.03.2024 16:32:01
Bernd
Hallo zusammen,
habe ein Problem mit einer API-Abfrage.
Ich möchte in eine Exceltabelle den täglichen Ertrag meiner PV-Anlage einlesen.
Der Wechselrichter ist über API zu erreichen:
Das funktioniert mit dieser VBA:
Sub js_json_api_solax()


Dim req As MSXML2.ServerXMLHTTP60
Dim apiURL, ret As String

Set req = New MSXML2.ServerXMLHTTP60

' Example API: Solax
apiURL = "https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=202403082244053660296xxx&sn=SWNAKZPxxx"

' Verbindung herstellen
req.Open "GET", apiURL, False
req.send

' Status in Zelle A5 ausgeben
Range("a5").Value = req.Status & " - " & req.statusText

' JSON unformatiert in A6 ausgeben
ret = req.responseText
Range("a6").Value = ret

' JSON parsen
Dim jsonObject As Object
Set jsonObject = JsonConverter.ParseJson(ret)

' Variable Temp ausgeben (in Watt)
Range("a7").Value = Round(jsonObject("result")("yieldtoday"))

End Sub


Das Ergebnis sieht so aus:
200 -
{"success":true,"exception":"Query success!","result":{"inverterSN":"XMT072G3042132","sn":"SWNAKZPLHQ","acpower":242.0,"yieldtoday":1.5,"yieldtotal":1490.5,"feedinpower":0.0,"feedinenergy":0.0,"consumeenergy":0.0,"feedinpowerM2":null,"soc":null,"peps1":null,"peps2":null,"peps3":null,"inverterType":"4","inverterStatus":"102","uploadTime":"2024-03-09 15:22:57","batPower":null,"powerdc1":252.0,"powerdc2":0.0,"powerdc3":null,"powerdc4":null,"batStatus":null},"code":0}

In "A7" lass ich mir dann "yieldtoday" ausgeben. Dieser Wert ist Original z.B. 1.5, wird aber in "A7" aufgerundet auf 2,0. angezeigt.
Warum?????

Das ist aber nur das kleinere Problem. Außerdem möchte ich aus meinem Stromzähler die kWh ausgeben.
Das Zählermodul von Powerfox ist auch über API auslesbar. Dafür nutzte ich die gleiche VBA, nur mit geänderter URL:

https://bscheff@t-online.de:ehb21bxxxx@backend.powerfox.energy/api/2/my/main/current?unit=kwh
Gebe ich diese in den Browser ein kommt als Ergebnis:
{"outdated":false,"watt":264,"timestamp":1709996595,"a_Plus":6689.116,"a_Minus":400.307}

Bei Nutzung der VBA


Sub js_json_api_powerfox()

Dim req As MSXML2.ServerXMLHTTP60
Dim apiURL, ret As String

Set req = New MSXML2.ServerXMLHTTP60

' Example API: Powerfox
apiURL = "https://bscheff@t-online.de:ehb21bxxx@backend.powerfox.energy/api/2/my/main/current?unit=wh"

' Verbindung herstellen
req.Open "", apiURL, False
req.send

' Status in Zelle A1 ausgeben
Range("a9").Value = req.Status & " - " & req.statusText

' JSON unformatiert in A2 ausgeben
ret = req.responseText
Range("a10").Value = ret

' JSON parsen
Dim jsonObject As Object
Set jsonObject = JsonConverter.ParseJson(ret)

' Variable Temp ausgeben (in Watt)
Range("a11").Value = Round(jsonObject("main")("a_Plus"))

End Sub


kommt aber der Fehler: Laufzeitfehler -2147012891 (80072ee5)
Systemfehler: -2147012891
' Verbindung herstellen
req.Open "GET", apiURL, False "Ist gelb markiert"
req.send

Ich komme nicht dahinter warum es nicht mit VBA funzt.
Bin für jeden Tipp dankbar.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in API Abfrage
09.03.2024 16:39:04
ralf_b
Round(.... rundet Werte.

möglicherweise fehlt hier das GET in der zweien Abfrage req.Open "", apiURL, False

und mit der Unformatierten Ausgabe der Json bist du soweit zufrieden?
AW: Fehler in API Abfrage
09.03.2024 17:22:56
Bernd
Sorry, hab ich gerade gemerkt. Das GET steht selbstverständlich drin: req.Open "GET", apiURL, False
Hab ich beim vielem testen und kopieren falsch hier reingestellt.
Anzeige
AW: Fehler in API Abfrage
09.03.2024 17:30:15
Onur
Ich habe dir doch geantwortet. Liest du die Antworten überhaupt alle?
AW: Fehler in API Abfrage
09.03.2024 17:55:58
Bernd
Muss ich mich nochmal entschuldigen. Die Antwort sollte für ralf-b sein. Bin neu hier im Forum u. muss mich erstmal einfuchsen.
Lese gerade in dem Link von dir. Habe schon einiges durchprobiert. Mit dieser URL:
https://backend.powerfox.energy/api/2.0/my/9c9c1fd44/current
kommt man übern Browser auch rein. Allerdings kommt erst ein Anmeldefenster (User/Passwort).
Schreib ich diese URL ins VBA kommt natürlich ein Fehler
Userbild
und beim Debuggen
Userbild

was wohl an den fehlenden Zungangsdaten liegen wird.
Anzeige
AW: Fehler in API Abfrage
09.03.2024 17:10:57
Bernd
Danke für die Tipps. Round ist geklärt. Mit dem zweiten GET komm ich nicht klar.
Bei der 1. VBA (Sub js_json_api_solax() funktioniert es doch auch.

"mit der Unformatierten Ausgabe der Json bist du soweit zufrieden?" --- muss ich ja. Bin ja kein Experte.
Für meinen Zweck gehts schon.



Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige