ich versuche den Eigenverbrauch mit einer _math.php zu berrechnen.
Folgender Code:
Code: Alles auswählen
<?php
/*****************************************************************************
// Berechnung einzelner Werte um sie in einem Dashboard anzeigen zu können
//
*****************************************************************************/
// $DB1 = Datenbank des Wechselrichters Measurement: PV
// Hier wird der neueste Eintrag der Datenbank ausgelesen und im Array $DB1 gespeichert.
$Datenbank = "solaranzeige";
$Measurement = "PV";
$ch = curl_init('http://localhost/query?db='.$Datenbank.'&precision=s&q='.urlencode('select * from '.$Measurement.' order by time desc limit 1'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_TIMEOUT, 15); //timeout in second s
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 12);
curl_setopt($ch, CURLOPT_PORT, 8086);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$Ergebnis["result"] = curl_exec($ch);
$Ergebnis["rc_info"] = curl_getinfo ($ch);
$Ergebnis["JSON_Ausgabe"] = json_decode($Ergebnis["result"],true,10);
$Ergebnis["errorno"] = curl_errno($ch);
if ($Ergebnis["rc_info"]["http_code"] == 200 or $Ergebnis["rc_info"]["http_code"] == 204) {
$Ergebnis["Ausgabe"] = true;
}
curl_close($ch);
unset($ch);
if (!isset($Ergebnis["JSON_Ausgabe"]["results"][0]["series"])) {
log_schreiben("Es fehlt die Datenbank solaranzeige mit dem Measurement PV oder sie ist leer.","|- ",3);
log_schreiben("Fehler: ".$Ergebnis["JSON_Ausgabe"]["results"][0]["error"],"|- ",4);
}
else {
for ($h = 1; $h < count($Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["columns"]); $h++) {
$DB1[$Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["columns"][$h]] = $Ergebnis["JSON_Ausgabe"]["results"][0]["series"][0]["values"][0][$h];
}
log_schreiben("Datenbank: solaranzeige DB1 ".print_r($DB1,1)," ",10);
}
// Hier wurde die Datenbank "solaranzeige" Measurement "PV" ausgelesen.
// Die Daten sind jetzt im Array $DB1[]
// Alle Daten des SMA Energy Meter sind im Array $aktuelleDaten[]
/*****************************************************************************/
// Jetzt wird die Berechnung gestartet
// Zur Überprüfung werden die Werte bei Tracelevel = 8 in die LOG Datei geschrieben.
/*****************************************************************************/
log_schreiben(" PV-Leistung: ".$DB1["Leistung"],"",8);
log_schreiben(" Bezug: ".$aktuelleDaten["Bezug"],"",8);
log_schreiben(" Einspeisung: ".$aktuelleDaten["Einspeisung"],"",8);
log_schreiben(" Eigenverbrauch: ".($DB1["Leistung"]-$aktuelleDaten["Einspeisung"]+$aktuelleDaten["Bezug"]),"",8);
// So wird die Zusatz Query zusammengestellt.
// Alle Daten werden in die Datenbank des HomeManager in ein neues Measurement "Dashboard" geschrieben.
// Der Zeitstempel ist der 'zentrale Timestempel'
// Damit ist die Visualisierung in Grafana sehr einfach.
$aktuelleDaten["ZusatzQuery"] = "Dashboard Erzeugung=".$DB1["Leistung"].",Bezug=".$aktuelleDaten["Bezug"];
$aktuelleDaten["ZusatzQuery"] .= ",Einspeisung=".$aktuelleDaten["Einspeisung"].",Eigenverbrauch=".($DB1["Leistung"]-$aktuelleDaten["Einspeisung"]+$aktuelleDaten["Bezug"]);
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
?>
Code: Alles auswählen
24.09. 08:37:02 -Multi Regler Auslesen [Start].
24.09. 08:37:02 -Verarbeitung von: '1.user.config.php' Regler: 22
24.09. 08:37:02 |---------------- Start kostal_meter.php --------------------
24.09. 08:37:02 o -Hardware Version: 4B
24.09. 08:37:02 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
24.09. 08:37:02 -Multi-Regler-Ausgang. 7
24.09. 08:37:09 |---------------- Stop kostal_meter.php -------------------
24.09. 08:37:09 -Verarbeitung von: '2.user.config.php' Regler: 21
24.09. 08:37:09 |---------------- Start kostal_piko.php ---------------------
24.09. 08:37:09 + -Die Daten werden ausgelesen...
24.09. 08:37:09 -ANB Start: 0
24.09. 08:37:09 |- -Es fehlt die Datenbank solaranzeige mit dem Measurement AC oder sie ist leer.
24.09. 08:37:09 |- -Fehler: 0
24.09. 08:37:09 - AC_Leistung_Gesamt:
24.09. 08:37:09 - Leistung_neg:
24.09. 08:37:09 - Leistung_pos:
24.09. 08:37:09 - Eigenverbrauch: 0
24.09. 08:37:09 * -Daten zur lokalen InfluxDB [ solaranzeige2 ] gesendet.
24.09. 08:37:09 -Multi-Regler-Ausgang. 9
24.09. 08:37:18 -OK. Datenübertragung erfolgreich.
24.09. 08:37:18 |---------------- Stop kostal_piko.php --------------------
24.09. 08:37:18 -Multi Regler Auslesen [Stop].