WR liefert nachts keine Daten - Wie Default Werte setzen?

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Antworten
Solarspatz
Beiträge: 3
Registriert: Di 10. Mai 2022, 13:19
Hat sich bedankt: 1 Mal

WR liefert nachts keine Daten - Wie Default Werte setzen?

Beitrag von Solarspatz »

Hallo liebes Forum,

ich habe eine kleine PV Anlage mit einem Kostal Pico MP+ 1500 Wechselrichter, den ich mit der Solaranzeige Version 5.0.2 wunderbar visualisieren kann. Leider liefert der Wechselrichter für einige Parameter (z.B. AC Strom) keinen Wert mehr zurück, wenn er (z.B. Nachts) keine Leistung mehr abgibt (siehe Anlage "Kostal Pico - fehlende Werte..."). Dadurch schlägt die Übernahme des Datensatzes in die Influx DB mit einem http_code 400er Fehler fehl, weil die betroffenen Variablen dazu keinen zulässigen Wert besitzen (siehe Anlage "Fehlermeldung Datenübernahme...").

Das Problem würde ich gerne lösen, da ich auch nachts bestimmte Daten des Wechselrichters (z.B. Grid Consumption) auswerten möchte.

Meine Idee war jetzt, die betroffenen Variablen mit dem Wert "0" in meiner "kostal_pico.php" zu initialisieren. Einer der Parameter die bei Dunkelheit keinen Wert mehr liefern, ist "AC_Power". Hier wird bei Dunkelheit dann auch kein numerischer Wert mehr von meinem Wechselrichter angezeigt.

Beispiel mit von mir eingefügter Initialisierung auf den Wert "0":
...
$aktuelleDaten["AC_Leistung_R"] = 0; <--- von mir eingefügte Zeile zur Initialisierung
$aktuelleDaten["AC_Leistung_R"] = $piko_wert["AC_Power"]; <---- originale Zeile zur Übernahme des Wertes in das Array
...

Das funktioniert aber nicht. Scheinbar liefert der Wechselrichter doch etwas zurück, was die Initialisierung überschreibt. Habe ich einen Denkfehler hier gemacht? Würde eine Fehlerbehandlung im Sinne von "wenn kein nummerischer Wert in "AC_Power", dann setzte den Wert "0" für "AC_Leistung_R" helfen?

Über einen Tipp in welche Richtung ich das Problem lösen könnte bzw. wo ich mich in die Erstellung der Fehlerbehandlung einlesen könnte, wäre ich dankbar!

Viele Grüße, Henrik
Dateianhänge
Fehlermeldung Datenübernahme aus Log.PNG
Kostal Pico - Fehlende Werte wenn kein Ertrag.PNG
Kostal Pico - Fehlende Werte wenn kein Ertrag.PNG (21.54 KiB) 731 mal betrachtet

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

Re: WR liefert nachts keine Daten - Wie Default Werte setzen?

Beitrag von Ulrich »

Kannst du bitte einmal für jeden Wert, der fehlt folgende Zeilen einbauen?

Code: Alles auswählen

    if (!is_numeric($aktuelleDaten["AC_Leistung_R"]))   {
        $aktuelleDaten["AC_Leistung_R"] = 0;
    }

Das bedeutet, wenn der Wert nicht nummerisch ist, wird 0 eingefügt.
Wenn es funktioniert, kannst du mir schreiben, was du alles genau eingefügt hast?
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Solarspatz
Beiträge: 3
Registriert: Di 10. Mai 2022, 13:19
Hat sich bedankt: 1 Mal

Re: WR liefert nachts keine Daten - Wie Default Werte setzen?

Beitrag von Solarspatz »

Hallo Ulrich,

vielen Dank für die schnelle Unterstützung. Damit konnte ich das Problem lösen.

Hier der Auszug aus der kostal_pico.php, in der ich die Abfrage eingebaut habe. Wichtig dabei dürfte noch sein, dass ich nur den String1 des Wechselrichters belegt habe. Möglicherweise muss die Abfrage auch für den zweiten String ergänzt werden, wenn dieser ebenfalls aktiviert ist.

Auszug "kostal_pico.php"

$aktuelleDaten["PV_Leistung_1"] = $aktuelleDaten["PV_Spannung_1"] * $aktuelleDaten["PV_Strom_1"];
$aktuelleDaten["PV_Leistung_2"] = $aktuelleDaten["PV_Spannung_2"] * $aktuelleDaten["PV_Strom_2"];
$aktuelleDaten["PV_Leistung"] = $aktuelleDaten["PV_Leistung_1"] + $aktuelleDaten["PV_Leistung_2"];

// Initialisierung der nachfolgenden Variablen mit "0", sofern kein numerischer Wert vom WR zurueckgegeben
// für Wechselrichter Piko MP Plus mit nur einem aktiven String1

if (!is_numeric($aktuelleDaten["AC_Strom_R"])) {
$aktuelleDaten["AC_Strom_R"] = 0;
}
if (!is_numeric($aktuelleDaten["AC_Leistung_R"])) {
$aktuelleDaten["AC_Leistung_R"] = 0;
}
if (!is_numeric($aktuelleDaten["PV_Strom_1"])) {
$aktuelleDaten["PV_Strom_1"] = 0;
}


if (isset($piko_wert["BDC_BAT_Voltage"])) {
$aktuelleDaten["Batteriespannung"] = $piko_wert["BDC_BAT_Voltage"];
$aktuelleDaten["Batteriestrom"] = $piko_wert["BDC_BAT_Current"];
$aktuelleDaten["Batterieleistung"] = $piko_wert["BDC_BAT_Power"];

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

Re: WR liefert nachts keine Daten - Wie Default Werte setzen?

Beitrag von Ulrich »

Danke für das Ausprobieren. Ich werde die Änderung dann so übernehmen (mit Stang 2)
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Mattzimann
Beiträge: 1
Registriert: Mo 10. Apr 2023, 21:56

Re: WR liefert nachts keine Daten - Wie Default Werte setzen?

Beitrag von Mattzimann »

Hallo,

entschuldigt bitte das wiederbeleben von dem Thema hier allerdings habe ich genau damit Probleme.
Dieser Code setzt meine AC Werte egal wann auf 0. Ich lasse mir hier aktuell die AC_STROM Werte ausgeben, der erste log output ist vor dem Code Block der auf Numeric checkt und der zweite log output ist danach. Da ich mich mit PHP nicht so überragen auskenne wundere ich mich doch etwas was hier das Problem ist.

Bild

Bild

Mit freundlichen Grüßen
Mattzimann

Antworten

Zurück zu „Allgemeines“