Überschussladen mit SDM630

PV Überschussladen mit Wallboxen. (intelligenten Ladestationen) Alles was mit der eingebauten Wallbox-Steuerung zu tun hat.

Moderator: Ulrich

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Überschussladen mit SDM630

Beitrag von dirkl »

Hallo zusammen,

ich habe mich jetzt mal quer durch das Forum gelesen und auch die Suche entsprechend bemüht, entweder ist mein Thema zu einfach oder es hat noch nie jemand dazu eine Frage gestellt :)

Ich habe eine Growatt Wallbox in Verbindung mit einem go-eCharger im Einsatz. Multiregler läuft, auch die Wallbox Steuerung macht das was sie soll und schreibt einen festen Wert für den Eigenverbrauch in die Datei wallbox.log

Da ich nun noch einen Gesamtzähler (SDM630), der die Einspeisung misst, installiert habe würde ich gerne den Wert der Einspeisung nutzen und der Wallbox die zur Verfügung stehende Leistung übermitteln. Den SDM habe ich nun als 3. Gerät eingebunden, die Daten werden auch korrekt in die DB zaehler_gesamt geschrieben. Hier steht mir die Einspeisung als negativer Wert zur Verfügung.

Nun ist die Frage, wie bekomme ich den Wert als Überschuss der Wallbox übermittelt? Die Wallbox INI fordert ja den Eigenverbraucht, den könnte ich anhand der Werte Erzeugung des Wechselrichters abzüglich der Einspeisung berechnen.

Hat jemand einen Tipp für den einfachsten Weg und kann einem Laie auf die Sprünge helfen? Evtl. reicht auch schon ein Codeschnippsel und eine kurze Erläuterung zum Weg um mir auf die Sprünge zu helfen :) Klasse wäre natürlich, wenn das jemand schon umgesetzt hat und ein funktionierendes Beispiel präsentieren könnte :)


Vielen Dank und Gruß
Dirk

Benutzeravatar
Ulrich
Administrator
Beiträge: 5974
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 131 Mal
Danksagung erhalten: 838 Mal

Re: Überschussladen mit SDM630

Beitrag von Ulrich »

Das steht ganz genau beschrieben hier:
viewtopic.php?t=3916
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Re: Überschussladen mit SDM630

Beitrag von dirkl »

Hallo Ulrich,

dass habe ich auch gelesen, allerdings fehlt mir beim Growatt die php Variable, oder?

Growatt Datei growatt_math.php erstellen mit folgendem Inhalt:

Code: Alles auswählen

<?php

$BenutzerArray["Eigenverbrauch"] = $aktuelleDaten["Einspeisung"];

?>
Problem hier ist allerdings schon, dass der WR keine Daten zur Einspeisung in die DB schreibt. Diese bekäme ich am einfachsten über den SDM630. Oder benötige ich hier eine SDM630_meter_math.php?

wall-math.php erstellen mit:

Code: Alles auswählen

<?php

$Eigenverbrauch = $BenutzerArray["Eigenverbrauch"];
log_schreiben( "aktueller Eigenverbrauch: ".$Eigenverbrauch, "", 3 ); 

?>
Ist auch kein Problem, allerdings fehlt mir dann hier der Eigenverbrauch, da er zuvor nicht berechnet wird.


Gruß
Dirk

Benutzeravatar
Ulrich
Administrator
Beiträge: 5974
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 131 Mal
Danksagung erhalten: 838 Mal

Re: Überschussladen mit SDM630

Beitrag von Ulrich »

Hallo Dirk,

du hast das Prinzip genau erkannt. Du benötigst eine SDM630_meter_math.php.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Re: Überschussladen mit SDM630

Beitrag von dirkl »

Okay, so hatte ich das erstellt.

SDM630_meter_math.php

Code: Alles auswählen

<?php

$BenutzerArray["Eigenverbrauch"] = $aktuelleDaten["AC_Leistung"];

?>
wall-math.php

Code: Alles auswählen

<?php

$Eigenverbrauch = $BenutzerArray["Eigenverbrauch"];
log_schreiben( "aktueller Eigenverbrauch: ".$Eigenverbrauch, "", 3 ); 

?>

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Re: Überschussladen mit SDM630

Beitrag von dirkl »

Im php Log habe ich folgende Meldung, dass sagt mir doch, dass er eine Variable versucht zu laden deren Wert Null ist? Demnach kann er nicht auf AC_Leistung zugreifen?

Code: Alles auswählen

[17-Jul-2023 20:33:03 Europe/Berlin] PHP Notice:  Undefined variable: BenutzerArray in /var/www/html/wall-math.php on line 3
[17-Jul-2023 20:33:03 Europe/Berlin] PHP Notice:  Trying to access array offset on value of type null in /var/www/html/wall-math.php on line 3

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Re: Überschussladen mit SDM630

Beitrag von dirkl »

Schätze hier war noch ein Fehler von mir und es muss statt AC_Leistung schlicht Leistung heißen. Dann bekomme ich folgendes:

Code: Alles auswählen

[17-Jul-2023 21:01:20 Europe/Berlin] PHP Notice:  Undefined index: Leistung in /var/www/html/SDM630_meter_math.php on line 3
Müsste meiner Interpretation nach auch passen, da in der SDM630_meter_math.php kein Wert gesetzt wird.

Benutzeravatar
Ulrich
Administrator
Beiträge: 5974
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 131 Mal
Danksagung erhalten: 838 Mal

Re: Überschussladen mit SDM630

Beitrag von Ulrich »

Bei dem SDM630 muss die _math Datei so heißen:

Code: Alles auswählen

<?php

$BenutzerArray["Eigenverbrauch"] = $aktuelleDaten["AC_Leistung"];

?>
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

dirkl
Beiträge: 21
Registriert: Fr 4. Nov 2022, 15:37

Re: Überschussladen mit SDM630

Beitrag von dirkl »

Dann hatte das ja gepasst, also muss es an einer anderen Stelle hängen. Hier muss ich dann wohl leider passen, da ich nicht nachvollziehen kann ob die Variable ausgelesen wird geschweige denn ob die Weiterverarbeitung funktioniert.

Benutzeravatar
Ulrich
Administrator
Beiträge: 5974
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 131 Mal
Danksagung erhalten: 838 Mal

Re: Überschussladen mit SDM630

Beitrag von Ulrich »

Da hatte ich einen Knoten im Gehirn. Die SDM_meter_math.php ist gar nicht nötig und die wall-math.php muss so aussehen:
(Natürlich nur in Verbindung mit dem Zähler SDM630)

Code: Alles auswählen

<?php

$wbDatenbankname = "zaehler_gesamt";
$wbMeasurement = "AC";

// $UserDB = Datenbank solaranzeige  Measurement: Summen
$ch = curl_init('http://localhost/query?db='.$wbDatenbankname.'&precision=s&q='.urlencode('select * from '.$wbMeasurement.' order by time desc limit 1'));
$rc = datenbank($ch);
if (!isset($rc["JSON_Ausgabe"]["results"][0]["series"])) {
  log_schreiben("Es fehlt die Datenbank '".$wbDatenbankname."' mit dem Measurement Service oder sie ist leer.","|- ",1);
}

for ($z = 1; $z < count($rc["JSON_Ausgabe"]["results"][0]["series"][0]["columns"]); $z++) {
  $UserDB[$rc["JSON_Ausgabe"]["results"][0]["series"][0]["columns"][$z]] = $rc["JSON_Ausgabe"]["results"][0]["series"][0]["values"][0][$z];
}

log_schreiben("Alle Daten der wall-math Abfrage:\n".print_r($UserDB,1),"",3);

// Variablen je nach Measurement
// $UserDB["Wh_Heute"]

// $Eigenverbrauch = $UserDB["xxxxx"];
if($UserDB["Leistung"] < 0){
  $Eigenverbrauch = abs($UserDB["Leistung"]);
}

log_schreiben("Neu berechneter Eigenverbrauch (siehe wall-math): ".$Eigenverbrauch,"",3);

return;
?>
Was macht die wall-math.php?
Die aktuelle Einspeisung (negativer Wert) wird hier aus der Datenbank ausgelesen.
Ist der Wert negativ, dann wird er als Eigenverbrauch benutzt. Ist er positiv (Bezug) wird der Wert aus der INI Datei benutzt.



Das funktioniert aber nur, wenn die Wallbox beim Hausverbrauch nicht mitgezählt wird!
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Zurück zu „Wallbox Steuerung [intelligente Ladestationen ]“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste