Seite 3 von 7

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 18. Nov 2021, 15:14
von StepSolar
:oops: :oops: :oops: :oops: :oops:

Code: Alles auswählen

$i = 1;
{
$Datenbank1 = "solarmonitor";
$Measurement1 = "PV";
$ch = curl_init('http://localhost/query?db='.$Datenbank1.'&precision=s&q='.urlencode('select * from '.$Measurement1.' order by time desc limit 1'));

$Datenbank2 = "SDM_SSP";
$Measurement2 = "AC";
$ch = curl_init('http://localhost/query?db='.$Datenbank2.'&precision=s&q='.urlencode('select * from '.$Measurement2.' 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,$DB2,1),"  ",10);
}
 
$eigeneDaten["Power_consumption"] = $DB1["Power"] + $DB2["Power"];

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 18. Nov 2021, 18:52
von TeamO
StepSolar hat geschrieben:
Do 18. Nov 2021, 14:35
Ihre Datei funktioniert, aber sie liest keine Daten aus zwei Datenbanken.
Also habe ich eine Änderung vorgenommen, aber es funktioniert nicht. Vielleicht möchten Sie überprüfen, was ich falsch gemacht habe.

Vielen DankSDM230_meter_math5.php

vielleicht habe ich mich nicht gut erklärt.
Ich möchte 2 Werte aus zwei Datenbanken hinzufügen

der Wert
"Power" = messen "PV" Datenbank "solarmonitor"
+
"Power" = messen "AC" Datenbank "SDM_SSP"
=
Verbrauch
Was die beiden Dateien machen habe ich geschrieben.
Es muss auch nur eine Datenbank ausgelesen werden (die vom SolarEdge - $Datenbank = "solarmonitor"; $Measurement = "PV";). Dort wird der letzte Eintrag von "Power" mit dem aktuellen Wert "AC_Power" vom SDM230 addiert (Zeile 69 in der SDM230_meter_math.php) und dieser Wert wird dann mit der eigenenfunktionen.php in die Datenbank "HomeManager" Measurement "Power_consumption" als Wert "Power_consumption" gespeichert.
Da wir mit der SDM230_meter_math.php arbeiten, muss ich nicht aus dieser Datenbank lesen, da der benötigte Wert als Variable $aktuelleDaten["AC_Power"] bereits vorhanden ist.

Wird bei Dir überhaupt etwas in die Datenbank HomeManager geschrieben? Ein Test bei mir hatte funktioniert.

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 18. Nov 2021, 20:59
von StepSolar
Danke für deine Erklärung und für die PHP-Datei.
Die Datei funktioniert aber nicht gut, ich meine, sie macht die Summe zwischen den beiden Werten Ich sehe sie 2 Sekunden lang auf grafana, wird dann aber durch den "Power"-Wert der "solarmonitor"-Datenbank ersetzt.
Und in der Homemanager-Datenbank wird der "Power"-Wert der "solarmonitor"-Datenbank gespeichert und nicht die Summe aus "Power" und "AC_Power"

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 18. Nov 2021, 21:06
von TeamO
Danke für die Info. Dann schaue ich morgen nochmal und teste es an meinem System.

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 18. Nov 2021, 22:17
von StepSolar
TeamO hat geschrieben:
Do 18. Nov 2021, 21:06
Danke für die Info. Dann schaue ich morgen nochmal und teste es an meinem System.
Ok Dankeschön

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Fr 19. Nov 2021, 09:21
von TeamO
Ich habe es mir jetzt nochmal angeschaut.
Die Berechnung und das speichern in die Datenbanken funktioniert alles richtig.
Diesen Kommentar:
StepSolar hat geschrieben:
Do 18. Nov 2021, 20:59
ich meine, sie macht die Summe zwischen den beiden Werten Ich sehe sie 2 Sekunden lang auf grafana, wird dann aber durch den "Power"-Wert der "solarmonitor"-Datenbank ersetzt.
Und in der Homemanager-Datenbank wird der "Power"-Wert der "solarmonitor"-Datenbank gespeichert und nicht die Summe aus "Power" und "AC_Power"
kann ich nicht bestätigen. Was ich aber sehen konnte ist folgendes:
Bei der aktuellen Version wird der letzte Wert aus der Datenbank solarmonitor -> PV -> Power ausgelesen und mit dem aktuellen Wert für SDM_SSP -> AC -> Power addiert. Der erste Wert ist also 1 Minute alt und der zweite ist aktuell und wird erst noch in die Datenbank geschrieben.

Also einfach Formuliert:
Power_consumption = solarmonitor/PV/Power (1 Minute alt) + SDM_SSP/AC/Power (aktuell)

Ich kann es jetzt noch so ändern, dass für beide Werte immer aus der Datenbank ausgelesen wird. Dann ist aber der aktuelle Wert Power_consumptionin der neuen Datenbank HomeManager immer um eine Minute versetzt, also eine Minute alt, auch wenn er der letzte in der Datenbank ist.

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Fr 19. Nov 2021, 13:54
von StepSolar
Ich kann momentan keine Tests machen, ich bin nicht zu Hause. Aber wenn ich andere Datenbanken und andere Maßnahmen einfügen möchte, was soll ich tun? Vielen Dank

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Fr 19. Nov 2021, 14:30
von TeamO
Es kommt ganz darauf an, was Du mit anderen Datenbanken und Maßnahmen meinst.
Wenn du meine Dateien anschaust und verstehst, dann kannst Du daraus natürlich noch viel mehr machen.

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Fr 19. Nov 2021, 15:12
von StepSolar
Ich habe andere SDM230-Zähler, wo sie die Werte in anderen Datenbanken speichern. Ich möchte diese Datenbanken auch gerne mit ihren Messungen einfügen, um andere Berechnungen durchzuführen, die dann in der Heimatdatenbank gespeichert werden

Database(1)
Database(2)
Database(3)
ecc...

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Fr 19. Nov 2021, 17:31
von TeamO
Wenn Du mir ganz genau sagst, was Du haben möchtest, dann kann ich schauen was ich machen kann.