Seite 5 von 7

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Di 23. Nov 2021, 17:32
von StepSolar
TeamO hat geschrieben:
Sa 20. Nov 2021, 16:56
Hier schnell meine Datei auf Dich angepasst. Diese funktioniert bei mir ohne Probleme.
Wenn es bei Dir immer noch nicht geht liegt es entweder an Deinen ganzen Änderungen oder an Docker.

SDM230_meter_math.php
Was bedeutet das?

Dankeschön

Code: Alles auswählen

if ($Objekt == "Senec1"){

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Di 23. Nov 2021, 17:35
von TeamO
Sorry, das war noch von meiner Installation zum testen.
Hier die korrekte Datei
SDM230_meter_math.php
(6.13 KiB) 181-mal heruntergeladen

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Di 23. Nov 2021, 19:09
von StepSolar
TeamO hat geschrieben:
Di 23. Nov 2021, 17:35
Sorry, das war noch von meiner Installation zum testen.
Hier die korrekte Datei

SDM230_meter_math.php
jetzt funktioniert es danke

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Mi 24. Nov 2021, 16:30
von StepSolar
Hallo TeamO,
Ich habe Ihrer Datei andere Datenbanken hinzugefügt, aber jetzt bekomme ich einen Fehler.
Weil?
hier sind die dateien
SDM230_meter_math.php
(9.02 KiB) 180-mal heruntergeladen
eigenefunktionen.php
(3.6 KiB) 185-mal heruntergeladen

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Mi 24. Nov 2021, 17:38
von TeamO
Da waren mehrere Fehler in den Dateien enthalten.
Einerseits waren die Variablen nicht richtig definiert und beim schreiben in die neue Datenbank war auch ein Fehler.

Hier die angepassten, mit denen es gehen sollte.
SDM230_meter_math.php
(9 KiB) 184-mal heruntergeladen
eigenefunktionen.php
(3.6 KiB) 192-mal heruntergeladen

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 25. Nov 2021, 14:30
von StepSolar
Vielen Dank für die Korrektur. Es klappt.
Aber jetzt habe ich einige Docker-Probleme, nach ca. 24h blockiert das System die SDM-Schütze und nur der Wechselrichter bleibt aktiv, tatsächlich funktioniert nur die Solarmonitor-Datenbank weiter, während die anderen unterbrochen werden. Die Lösung, die ich vorerst gefunden habe, besteht darin, mit Portainer "den Stack zu aktualisieren" und alles funktioniert wieder.
Was könnte das Problem sein?
und wie könnte ich es finden und lösen?
Ich glaube nicht, dass es an Ihrer Datei liegt, dass andere Änderungen nicht vorgenommen wurden.

Vielen Dank

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 25. Nov 2021, 15:03
von TeamO
Da kann ich leider nichts dazu sagen, da ich nicht mit Docker arbeite. Tut mir leid.

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 25. Nov 2021, 15:19
von StepSolar
TeamO hat versucht, Ihrer Datei den folgenden Code hinzuzufügen, aber ich bekomme das Ergebnis nicht.
Was mache ich falsch?

Code: Alles auswählen

$Datenbank4 = "SDM_SSP";
$Measurement4 = "Total_energy";
$ch = curl_init('http://localhost/query?db='.$Datenbank4.'&precision=s&q='.urlencode('select difference(last(*)) from '.$Measurement4.' WHERE time >= now() - 1h GROUP BY time(1d)'));

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Do 25. Nov 2021, 15:32
von StepSolar
TeamO hat das Problem gelöst :D :idea:

Code: Alles auswählen

$Datenbank4 = "SDM_SSP";
$Measurement4 = "Total_energy";
//  $ch = curl_init('http://localhost/query?db='.$Datenbank4.'&precision=s&q='.urlencode('select * from '.$Measurement4.' order by time desc limit 1'));
$ch = curl_init('http://localhost/query?db='.$Datenbank4.'&precision=s&q='.urlencode('select difference(last(*)) from '.$Measurement4.' WHERE time >= now() - 1h GROUP BY time(1d)'));

//SELECT difference(last("Wh_Export")) FROM "Total_energy" WHERE time >= now() - 1h GROUP BY time(1d)

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);

$Ergebnis4["result"] = curl_exec($ch);
$Ergebnis4["rc_info"] = curl_getinfo ($ch);
$Ergebnis4["JSON_Ausgabe"] = json_decode($Ergebnis4["result"],true,10);
$Ergebnis4["errorno"] = curl_errno($ch);

if ($Ergebnis4["rc_info"]["http_code"] == 200 or $Ergebnis4["rc_info"]["http_code"] == 204) {
  $Ergebnis4["Ausgabe"] = true;
}


curl_close($ch);
unset($ch);


if (!isset($Ergebnis4["JSON_Ausgabe"]["results"][0]["series"])) {
  log_schreiben("Es fehlt die Datenbank SDM_SSP mit dem Measurement Total_energy oder sie ist leer.","|- ",3);
  log_schreiben("Fehler: ".$Ergebnis4["JSON_Ausgabe"]["results"][0]["error"],"|- ",4);
}
else {
  for ($h = 1; $h < count($Ergebnis4["JSON_Ausgabe"]["results"][0]["series"][0]["columns"]); $h++) {
    $DB4[$Ergebnis4["JSON_Ausgabe"]["results"][0]["series"][0]["columns"][$h]] = $Ergebnis4["JSON_Ausgabe"]["results"][0]["series"][0]["values"][0][$h];
  }
  log_schreiben("Datenbank: SDM_SSP DB4 ".print_r($DB4,1),"  ",10);
}  
 
$eigeneDaten["Power"] = $DB1["Power"] + $DB2["Power"];
$eigeneDaten["Self_Consumption"] = $DB3["Wh_Today"] - $DB4["difference_Wh_Export"];

Re: Verbrauch berechnen mit Solaredge und SDM230

Verfasst: Sa 27. Nov 2021, 09:12
von StepSolar
Hallo TeamO,
Ich habe noch eine Frage an dich.
Können die von Ihnen erstellten Dateien Daten in eine (externe) Cloud-Datenbank übertragen?
Was soll ich sonst hinzufügen?
Vielen Dank