Überschussladen mit variablem Hausverbrauch

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

Moderator: Ulrich

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

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Ulrich »

Kopiert wird mit der Shift + linke Maustaste.
Danach steht das im Zwischenspeicher.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Endes
Beiträge: 26
Registriert: So 24. Okt 2021, 15:23
Danksagung erhalten: 3 Mal

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Endes »

Hi Ulrich,
super vielen Dank, damals hatte ich es hinbekommen...

Anbei die Einträge aus den Dateien.
Nun erkennt evtl. jemand auf Anhieb das Problem?

So nun der Inhalt aus der wall-math.php:

<?php
/******************************************************************************
// Hier können eigene Berechnungen gemacht werden, wenn das nötig ist.
// Es stehen alle Felder folgender Measurements zur Verfügung:
// $INI ==> Werte der INI Datei -> Array
// $wbSteuerung ==> Measurement 'Wallbox' der Datenbank 'steuerung' -> Array
// $DB1 ==> Measurement 'PV' der Datenbank des Wechselrichters -> Array
// $DB2 ==> Measurement 'Batterie' der Datenbank des BMS -> Array
// $DB3 ==> Measurement 'Summen' der Datenbank der Wallbox -> Array
// $DB4 ==> Measurement 'Service' der Datenbank der Wallbox -> Array
// $DB5 ==> Measurement 'Pack1' der Datenbank des BMS -> Array
// $DB6 ==> Measurement 'Ladung' der Datenbank 'steuerung' -> Array
// $DB7 ==> Measurement 'AC' der Datenbank der Wallbox -> Array
//
// Die Steuerung benötigt folgende Variablen, die man hier noch beeinflussen.
// kann. Bitte hier nur benutzen, wenn man sie auch anders berechnen möchte..
// Ansonsten hier nicht benutzen.
//
//
// $Eigenverbrauch = geschätzter Eigenverbrauch
//
//
******************************************************************************/

/******************************************************************************
Beispiel, wie man den aktuellen Eigenverbrauch benutzen kann.
Der Eigenverbrauch muss in einem Feld einer Datenbank zur Verfügung stehen
******************************************************************************/

// Puffer von x Watt
$Puffer = 600;.

$DB1Name = "solaranzeige";
$Measurement1Name = "Meter";
$Feldname1 = "Verbrauch";

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

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

$DB2Name = "Wallbox";
$Measurement2Name = "AC";
$Feldname2 = "Leistung_gesamt";

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

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

$Hausverbrauch = $DB1_math[$Feldname1];
$Wallboxverbrauch = $DB2_math[$Feldname2];
$Eigenverbrauch = $Hausverbrauch - $Wallboxverbrauch + $Puffer;

log_schreiben("Eigenverbrauch ist $Eigenverbrauch");

log_schreiben( "aktuelle Solarleistung ($Solarleistung) - Eigenverbrauch ($Eigenverbrauch): ".($Solarleistung - $Eigenverbrauch)." Watt");
log_schreiben( "Gemessener Eigenverbrauch: ".$Eigenverbrauch." Watt", "", 3 );
log_schreiben("math:Eigenverbrauch ist $Eigenverbrauch");

return;
?>


Und dies aus der Wallbox Log-Datei:

04.02. 11:26:01 |--> - - - - - - - - - Start WB Steuerung - - - - - - - -
04.02. 11:26:01 INFO Grundlage der Steuerung ist die INI Datei '2.wallbox.steuerung.ini'.
04.02. 11:26:01 INFO Ladung nur bei genügend Sonnenenergie. [ INI > NurBeiSonne = yes ]
04.02. 11:26:01 INFO Eigenverbrauch laut INI Datei: 800 Watt
04.02. 11:26:03 INFO aktuelle Solarleistung - Eigenverbrauch: 4529 Watt
04.02. 11:26:03 INFO Auto wird geladen.
04.02. 11:26:03 INFO Kabel angeschlossen und beidseitig verriegelt.
04.02. 11:26:03 INFO Ladestatus: 3
04.02. 11:26:03 INFO Ladepause: 0
04.02. 11:26:03 INFO StationBereit: 1
04.02. 11:26:03 INFO Intervall: 3
04.02. 11:26:03 INFO Solarleistung: 5329
04.02. 11:26:03 INFO Kabelstatus: 7
04.02. 11:26:03 INFO Ladequelle: PV-Module.
04.02. 11:26:03 WARN Bis jetzt geladen: 1894 Wh (Wenn ein Zähler angeschlossen ist)
04.02. 11:26:03 WARN aktueller Ladestrom: 6 Ampere.
04.02. 11:26:03 INFO Ladestromstärke errechnet: 19700 Milliampere
04.02. 11:26:03 INFO Stromstärke auf MaxMilliAmpere begrenzt,14000
04.02. 11:26:03 WARN Stromänderung. Neu:14000 Vorher: 6000
04.02. 11:26:03 ENDE |
04.02. 11:26:03 ENDE ---------------------------------------------------------


Vielen Dnak und GRuß

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

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Ulrich »

Das Problem ist, dass deine wall-math.php viele Fehler hat, die du erst einmal beseitigen musst.
Die Fehler stehen alle in der LOG Datei: /var/www/log/php.log
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Bogeyof
Beiträge: 1100
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 23 Mal
Danksagung erhalten: 160 Mal

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Bogeyof »

hatte sich überschnitten, hat @Ulrich alles schon geschrieben...

Bogeyof
Beiträge: 1100
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 23 Mal
Danksagung erhalten: 160 Mal

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Bogeyof »

Probiers mal so (ohne Gewähr), im Fehlerfall die /var/www/log/php.log posten:

Code: Alles auswählen

<?php
/******************************************************************************
// Hier können eigene Berechnungen gemacht werden, wenn das nötig ist.
// Es stehen alle Felder folgender Measurements zur Verfügung:
// $INI ==> Werte der INI Datei -> Array
// $wbSteuerung ==> Measurement 'Wallbox' der Datenbank 'steuerung' -> Array
// $DB1 ==> Measurement 'PV' der Datenbank des Wechselrichters -> Array
// $DB2 ==> Measurement 'Batterie' der Datenbank des BMS -> Array
// $DB3 ==> Measurement 'Summen' der Datenbank der Wallbox -> Array
// $DB4 ==> Measurement 'Service' der Datenbank der Wallbox -> Array
// $DB5 ==> Measurement 'Pack1' der Datenbank des BMS -> Array
// $DB6 ==> Measurement 'Ladung' der Datenbank 'steuerung' -> Array
// $DB7 ==> Measurement 'AC' der Datenbank der Wallbox -> Array
//
// Die Steuerung benötigt folgende Variablen, die man hier noch beeinflussen.
// kann. Bitte hier nur benutzen, wenn man sie auch anders berechnen möchte..
// Ansonsten hier nicht benutzen.
//
//
// $Eigenverbrauch = geschätzter Eigenverbrauch
//
//
******************************************************************************/

/******************************************************************************
Beispiel, wie man den aktuellen Eigenverbrauch benutzen kann.
Der Eigenverbrauch muss in einem Feld einer Datenbank zur Verfügung stehen
******************************************************************************/

// Puffer von x Watt
$Puffer = 600;.

$DB1Name = "solaranzeige";
$Measurement1Name = "Meter";
$Feldname1 = "Verbrauch";

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

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

$DB2Name = "Wallbox";
$Measurement2Name = "AC";
$Feldname2 = "Leistung_gesamt";

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

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

$Hausverbrauch = $DB1_math[$Feldname1];
$Wallboxverbrauch = $DB2_math[$Feldname2];
$Eigenverbrauch = $Hausverbrauch - $Wallboxverbrauch + $Puffer;

log_schreiben("Eigenverbrauch ist $Eigenverbrauch");

log_schreiben( "aktuelle Solarleistung (".$Solarleistung.") - Eigenverbrauch (".$Eigenverbrauch."): ".($Solarleistung - $Eigenverbrauch)." Watt");
log_schreiben( "Gemessener Eigenverbrauch: ".$Eigenverbrauch." Watt", "", 3 );
log_schreiben("math:Eigenverbrauch ist ".$Eigenverbrauch);

return;
?>

Endes
Beiträge: 26
Registriert: So 24. Okt 2021, 15:23
Danksagung erhalten: 3 Mal

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Endes »

Hi Bogeyof,

danke, hab das einmal 1 zu 1 von dir kopiert..
Evtl. müsste ich es einmal morgen bei Sonne probieren!? Aber ich vermute ein Fehler in Line 556?!


Und das spuckt die Log datei aus:

04-Feb-2023 16:28:04 Europe/Berlin] PHP Warning: Cannot assign an empty string to a string offset in /var/www/html/2.user.config.php on line 556
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Warning: Cannot assign an empty string to a string offset in /var/www/html/2.user.config.php on line 556
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: eca in /var/www/html/phpinc/funktionen.inc.php on line 2067
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ecr in /var/www/html/phpinc/funktionen.inc.php on line 2068
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ecd in /var/www/html/phpinc/funktionen.inc.php on line 2069
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec4 in /var/www/html/phpinc/funktionen.inc.php on line 2070
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec5 in /var/www/html/phpinc/funktionen.inc.php on line 2071
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec6 in /var/www/html/phpinc/funktionen.inc.php on line 2072
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec7 in /var/www/html/phpinc/funktionen.inc.php on line 2073
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec8 in /var/www/html/phpinc/funktionen.inc.php on line 2074
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec9 in /var/www/html/phpinc/funktionen.inc.php on line 2075
[04-Feb-2023 16:28:15 Europe/Berlin] PHP Notice: Undefined index: ec1 in /var/www/html/phpinc/funktionen.inc.php on line 2076

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

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Ulrich »

Der Fehler in Zeile 556 in der 2.user.config.php kommt daher, wenn man eine "neue" mit einer "alten" config Datei in einer Multi-Regler-Verion mischt.

In der Zeile einfach eine Leerstelle zwischen die Gänsefüßchen machen, dann ist der Fehler verschwunden. Der Fehler ist aber unbedeutend.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Rallef63
Beiträge: 2
Registriert: Fr 3. Mär 2023, 10:30

Re: Überschussladen mit variablem Hausverbrauch

Beitrag von Rallef63 »

Hallo,

ich habe ein GO-E Charger und bekomme meinen aktuellen Hausverbrauch an meinem Shelly 3EM angezeigt. Dieser Wert wird in meine Iobroker Influxdb reingeschrieben. Ich möchte nun diesen Wert nutzen um die WallBox laden wenn der Eigenverbrauch negativ wird, dh. Überschuss.
Kann ich in diesem Fall nur die Wallbox als Regler definieren?
In die wall-math.php würde ich den Eigenverbrauch entsprechend abfragen.

Antworten

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