Keine Werte bei den einzelnen Strings

Wenn mehr als ein Gerät an den Raspberry angeschlossen werden sollen. Z.B. ein Regler und ein Wechselrichter oder mehrere Wechselrichter. Das Maximum sind 6 Geräte pro Raspberry Pi.

Moderator: Ulrich

Linsenpago
Beiträge: 9
Registriert: Di 9. Feb 2021, 17:49

Re: Keine Werte bei den einzelnen Strings

Beitrag von Linsenpago »

Hi!

Ich habe gerade bei mir den Fehler für die fehlenden Daten des String 1 gefunden.
Ich habe mit php absolut nichts am Hut, aber kann zumindest ansatzweise verstehen was hier gewollt ist.

Im file /var/www/html/fronius_symo_serie.php gibt es folgende Passage:

Code: Alles auswählen

  $URL = "solar_api/v1/GetInverterRealtimeData.cgi";
  $URL .= "?Scope=Device";
  $URL .= "&DeviceID=".$WR_Adresse;
  $URL .= "&DataCollection=CommonInverterData";
  $JSON_Daten = $funktionen->read($WR_IP, $WR_Port, $URL);
  if (isset($JSON_Daten["Head"]["Status"]["Code"]) and $JSON_Daten["Head"]["Status"]["Code"] == 0) {
    // Es handelt sich um gültige Daten
    $funktionen->log_schreiben("GetInverterRealtimeData ".print_r($JSON_Daten, 1), "   ", 10);
    if (isset($JSON_Daten["Body"]["Data"]["FAC"]["Value"])) {
      $aktuelleDaten["AC_Ausgangsfrequenz"] = $JSON_Daten["Body"]["Data"]["FAC"]["Value"];
      $aktuelleDaten["AC_Wirkleistung"] = $JSON_Daten["Body"]["Data"]["PAC"]["Value"];
      $aktuelleDaten["AC_Ausgangsstrom"] = $JSON_Daten["Body"]["Data"]["IAC"]["Value"];
      $aktuelleDaten["AC_Ausgangsspannung"] = $JSON_Daten["Body"]["Data"]["UAC"]["Value"];
      $aktuelleDaten["Solarstrom"] = $JSON_Daten["Body"]["Data"]["IDC"]["Value"];
      $aktuelleDaten["Solarspannung"] = $JSON_Daten["Body"]["Data"]["UDC"]["Value"];
      if (isset($JSON_Daten["Body"]["Data"]["UDC_1"]["Value"])) {
        $aktuelleDaten["Solarspannung_String_1"] = $JSON_Daten["Body"]["Data"]["UDC"]["Value"];
        $aktuelleDaten["Solarstrom_String_1"] = $JSON_Daten["Body"]["Data"]["IDC"]["Value"];
      }
      if (isset($JSON_Daten["Body"]["Data"]["UDC_2"]["Value"])) {
        $aktuelleDaten["Solarspannung_String_2"] = $JSON_Daten["Body"]["Data"]["UDC_2"]["Value"];
        $aktuelleDaten["Solarstrom_String_2"] = $JSON_Daten["Body"]["Data"]["IDC_2"]["Value"];
      }
    }
    if ($aktuelleDaten["Gen24"] == false) {
      $aktuelleDaten["Geraetestatus"] = $JSON_Daten["Body"]["Data"]["DeviceStatus"]["StatusCode"];
      $aktuelleDaten["ErrorCodes"] = $JSON_Daten["Body"]["Data"]["DeviceStatus"]["ErrorCode"];
    }
  }
  else {
    break;
Hier habe ich in der Zeile:

Code: Alles auswählen

 if (isset($JSON_Daten["Body"]["Data"]["UDC_1"]["Value"])) {
das "_1" entfernt, da mit der Wechselrichter das bei der API Abfrage auch ohne "_1" ausgibt.

Code: Alles auswählen

{
   "Body" : {
      "Data" : {
         "DAY_ENERGY" : {
            "Unit" : "Wh",
            "Value" : null
         },
         "DeviceStatus" : {
            "ErrorCode" : 0,
            "InverterState" : "Running",
            "StatusCode" : 7
         },
         "FAC" : {
            "Unit" : "Hz",
            "Value" : 50.012004852294922
         },
         "IAC" : {
            "Unit" : "A",
            "Value" : 12.227632522583008
         },
         "IDC" : {
            "Unit" : "A",
            "Value" : 0.93537229299545288
         },
         "IDC_2" : {
            "Unit" : "A",
            "Value" : 5.1116251945495605
         },
         "IDC_3" : {
            "Unit" : "A",
            "Value" : null
         },
         "PAC" : {
            "Unit" : "W",
            "Value" : 2896.94921875
         },
         "SAC" : {
            "Unit" : "VA",
            "Value" : 2897.127197265625
         },
         "TOTAL_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 8239347.8911111113
         },
         "UAC" : {
            "Unit" : "V",
            "Value" : 236.2628173828125
         },
         "UDC" : {
            "Unit" : "V",
            "Value" : 531.4876708984375
         },
         "UDC_2" : {
            "Unit" : "V",
            "Value" : 481.8865966796875
         },
         "UDC_3" : {
            "Unit" : "V",
            "Value" : null
         },
         "YEAR_ENERGY" : {
            "Unit" : "Wh",
            "Value" : null
         }
      }
   },
   "Head" : {
      "RequestArguments" : {
         "DataCollection" : "CommonInverterData",
         "DeviceId" : "1",
         "Scope" : "Device"
      },
      "Status" : {
         "Code" : 0,
         "Reason" : "",
         "UserMessage" : ""
      },
      "Timestamp" : "2021-10-01T06:54:14+00:00"
   }
}
Da gibts nur "UDC" und "UDC2" und da der Wechselrichter nur 2 Strings kann, ist "UDC3" auf "null"

Ich hoffe ich konnte hierbei helfen.

sirathan
Beiträge: 8
Registriert: Di 12. Okt 2021, 19:31

Re: Keine Werte bei den einzelnen Strings

Beitrag von sirathan »

Hallo

Bei mir sind die Werte für die Gesamtspannung und den Gesamtstrom immer identisch wie Spannung und Strom von String 1.
Also wie folgt:

Spannung = Spannung_String_1
Strom = Strom_String_1

Spannung_String_2 und Strom_String_2 sind meiner Meinung nach korrekt

Kann es sein, dass der Wert Spannung_String_1 und Strom_String_1 nicht korrekt ausgelesen wird?

Danke

Benutzeravatar
Ulrich
Administrator
Beiträge: 2885
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 184 Mal
Kontaktdaten:

Re: Keine Werte bei den einzelnen Strings

Beitrag von Ulrich »

Hallo sirathan,

bitte melde dich einmal mit dem Fehler per eMail.
--------------------------------------
Ulrich [Admin]

Antworten