wall.math & docker

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

Moderator: Ulrich

Antworten
Paul1984
Beiträge: 32
Registriert: Mo 6. Mär 2023, 21:00
Danksagung erhalten: 2 Mal

wall.math & docker

Beitrag von Paul1984 »

Hey
hat irgendjemand die wall-math und docker am laufen?

ich verusche mein bestes aber es läd die Math erst garnicht.
Ich hab Multi-Regler Version erfolgreich am laufen. Inklusive eigener sungrow_math datei die ebenfalls geladen wird.
Wallbox Steuerung läuft ebenfalls - und aktuell versuche ich nur noch den Variablen Eigenverbrauch ein zu pflegen.
Allerdings läd er die wall-math datei erst garnicht.
Ich habe keinerlei Fehler in den Logs. Zum testen hab ich einen einfachen Logeintrag in die wall-math gesetzt. Aber auch der wird nicht angezeigt.

Muss man da bei Docker irgendwas anders beachten?

Paul1984
Beiträge: 32
Registriert: Mo 6. Mär 2023, 21:00
Danksagung erhalten: 2 Mal

Re: wall.math & docker

Beitrag von Paul1984 »

vielleicht noch als Veranschaulichung:

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
******************************************************************************/



log_schreiben("<> <math> <>");
// Puffer von x Watt
$Puffer = 300; 

$DB1Name = "sungrow";
$Measurement1Name = "Dashboard";
$Feldname1 = "Eigenverbrauch";

$ch = curl_init('http://localhost/query?db='.$DB1Name.'&precision=s&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 = "Goe";
$Measurement2Name = "AC";
$Feldname2 = "Leistung_gesamt";

$ch = curl_init('http://localhost/query?db='.$DB2Name.'&precision=s&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(" Bezug: ","",1);
log_schreiben("Eigenverbrauch ist $Eigenverbrauch");


log_schreiben( "aktuelle Solarleistung ($Solarleistung) - Eigenverbrauch ($Eigenverbrauch): ".($Solarleistung - $Eigenverbrauch)." Watt");


?>
Das ist meine wall-math.php

meine Vermutung geht dahin, dass ich den Eintrag zum User PHP-Script in der wallbox_steuerung.php in Zeile 1452 (ca.) ändern muss weil Docker nicht den gleichen Pfad hat wie der Raspi.
Habe ihn daher geändert zum gleichen Eintrag den ich auch für die sungrow_math.php nutze, wo es ja funktioniert.
Leider tut sich nichts....keine Fehlermeldung etc...

Spaßeshalber habe ich mal alles möglichen Kombinationen versucht, da tut sich aber garnix. Hab sogar schon die IF Bedingung einfach raus genommen...

Code: Alles auswählen

    include $Pfad . "wall-math.php"; // Falls etwas neu berechnet werden muss.
	include $Pfad . 'wall-math.php'; // Falls etwas neu berechnet werden muss.
	include $Pfad.'wall-math.php'; // Falls etwas neu berechnet werden muss.
	include "wall-math.php"; // Falls etwas neu berechnet werden muss.
	include 'www/html/wall-math.php'; // Falls etwas neu berechnet werden muss.
	include 'docker/solaranzeige/www/html/wall-math.php'; // Falls etwas neu berechnet werden muss.
	include 'volume1/docker/solaranzeige/www/html/wall-math.php'; // Falls etwas neu berechnet werden muss.
	include $Pfad.'wall-math.php'; // Falls etwas neu berechnet werden muss.
	include 'wall-math.php'; // Falls etwas neu berechnet werden muss.

Antworten

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