Ich habe das mal in der funktionen.inc.php gelöst als ein wert SOC in die Datenbank schreiben lassen das ist schon etwas länger her.
// SOC alle Batterien //SOC berechnen us3000 74Ah - us2000 50Ah
if ($daten["Regler"] == 41) { $query .= ",SOC=".$Summe/((74*$daten["Packs"])/100); }
else { $query .= ",SOC=".$Summe/((50*$daten["Packs"])/100); }
Dieser SOC Wert ist in jedem PHP script auslesbar mit
// Pylontech SOC lesen = $soc
// Datenbank setzen
$db = 'solaranzeige';
$query = urlencode("SELECT SOC FROM Service order by time DESC limit 1");
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 1); //timeout in seconds
curl_setopt($ch, CURLOPT_URL,"
http://127.0.0.1:8086/query?db=$db&q=$query");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec ($ch);
curl_close ($ch);
var_dump ($res);
$soc = substr(($res),117,3);
echo "<p>soc- $soc <br>";
//------
funktionen.inc.php circa Zeile 1300
$query .= ",Status5=".$daten["Pack".$i."_Warn_Status5"];
$query .= "\n";
}
$query .= "Service ";
$query .= "Anzahl_Packs=".$daten["Packs"];
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
$query .= ",Pack".$i."_Status=".$daten["Pack".$i."_Status"];
}
// Summe Amper +- alle Batterien
$Summe = 0;
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
$Summe = $Summe + $daten["Pack".$i."_Strom"];
}
$query .= ",Be_Entladung=".$Summe;
// Summe Amper/h alle Batterien
$Summe = 0;
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
if ($daten["Regler"] == 41) {
$Summe = $Summe + $daten["Pack".$i."_Ah_left_2"];
}
else {
$Summe = $Summe + $daten["Pack".$i."_Ah_left"];
}
}
$query .= ",Restkapazitaet_Gesamt=".$Summe;
// SOC alle Batterien //SOC berechnen us3000 74Ah - us2000 50Ah
if ($daten["Regler"] == 41) { $query .= ",SOC=".$Summe/((74*$daten["Packs"])/100); }
else { $query .= ",SOC=".$Summe/((50*$daten["Packs"])/100); }
$Summe = 0;
$query .= "\n";
break;
// SolarEdge