Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 13 - Typen unverträglich
17.05.2024 13:12:51 Bernd
NotSolved
17.05.2024 13:34:31 Gast73018
NotSolved
17.05.2024 14:09:14 Bernd
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
17.05.2024 13:12:51
Views:
365
Rating: Antwort:
  Ja
Thema:
Laufzeitfehler 13 - Typen unverträglich

Hallo zusammen,
hab ein Problem mit einer API Abfrage.
Bis habe ich von meinem Wechselrichter die Tagesleistung abgefragt. Angezeigt wird:

{"success":true,"exception":"Query success!","result":{"inverterSN":"XMT072G30421","sn":"SWNAKZHQ","acpower":122.0,"yieldtoday":1.7,

"yieldtotal":1548.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-04-10 16:06:51","batPower":null,"powerdc1":132.0,"powerdc2":0.0,"powerdc3":null,

"powerdc4":null,"batStatus":null},"code":0}

Mit dieser VBA habe ich mir den Wert "yieldtoday" geholt.

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=20240308440536602310&sn=SWNZPLHQ"
    
    ' Verbindung herstellen
    req.Open "POST", apiURL, False
    req.send
    
    ' Status in Zelle A31 ausgeben
    Range("Tabelle1!a31").Value = req.Status & " - " & req.statusText
    
    ' JSON unformatiert in A32 ausgeben
    ret = req.responseText
    Range("Tabelle1!a32").Value = ret
    
    ' JSON parsen
    Dim jsonObject As Object
    Set jsonObject = JsonConverter.ParseJson(ret)
    
    ' Variable Leistung in A33 ausgeben (in Watt)
    Range("Tabelle1!a33").Value = (jsonObject("result")("yieldtoday"))
  
    
End Sub


Jetzt habe ich aber einen anderen Wechselrichter. Bei diesem sieht die Ausgabe so aus:

{"inverters":[{"serial":"11618218","name":"Tschernoby2","order":0,"data_age":4,"poll_enabled":true,"reachable":true,

"producing":true,"limit_relative":75,"limit_absolute":900}],"total":{"Power":{"v":656.7999878,"u":"W","d":1},"YieldDay":{"v":1352,"u":"Wh","d":0},"YieldTotal":{"v":36.10499954,"u":"kWh","d":3}},

"hints":{"time_sync":false,"radio_problem":false,"default_password":false}}     

Jetzt bekomme ich aber immer Fehlermeldungen 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: Hoymiles
    apiURL = "http://192.168.178.77/api/livedata/status"
    
    ' Verbindung herstellen
    req.Open "GET", apiURL, False
    req.send
    
    ' Status in Zelle A31 ausgeben
    Range("Tabelle1!a31").Value = req.Status & " - " & req.statusText
    
    ' JSON unformatiert in A32 ausgeben
    ret = req.responseText
    Range("Tabelle1!a32").Value = ret
    
    ' JSON parsen
    Dim jsonObject As Object
    Set jsonObject = JsonConverter.ParseJson(ret)
    
    ' Variable Leistung in A33 ausgeben (in Watt)
    Range("Tabelle1!a34").Value = (jsonObject("total")("YieldDay"))
    
    
End Sub

Bin für jede Hilfe dankbar.

                                       


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 13 - Typen unverträglich
17.05.2024 13:12:51 Bernd
NotSolved
17.05.2024 13:34:31 Gast73018
NotSolved
17.05.2024 14:09:14 Bernd
NotSolved