Eigene Erweiterungen als verkürzte Version (verständlich)

PDF Dokumente für Informationen im Detail, sowie Bauanleitungen.

Moderatoren: Ulrich, TeamO

Antworten
solarfanenrico
Beiträge: 263
Registriert: Mi 20. Jan 2021, 19:49
Hat sich bedankt: 16 Mal
Danksagung erhalten: 19 Mal

Eigene Erweiterungen als verkürzte Version (verständlich)

Beitrag von solarfanenrico »

viewtopic.php?f=4&t=1494&p=9445&hilit=b ... rray#p9445

in diesem Thread wurde mir gesagt : es wird wohl nicht gehen.

eine funktionierende Variante:

Code: Alles auswählen

$Datenbank1 = "solaranzeige750";
$Measurement1 = "Summen";
$Measurement2 = "AC";
$ch = curl_init('http://localhost/query?db='.$Datenbank1.'&precision=s&q='.urlencode('select * from '.$Measurement1.' order by time desc limit 1').'&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 solaranzeige750 mit dem Measurement Summen 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);
}
      }
Dies war erst der Anfang meiner Suche nach einer verständlichen Lösung.

Mein komplettes script besteht aus zwei Dateien.
eine mathe.php, die für alle Geräte gilt und eine
growatt_math.php in welcher meine Datenbanken und Measurements enthalten sind.
Es funktioniert jedoch nur imZusammenspiel beider Datein, weil die mathe.php includiert wird.

im Grunde müssen nur die entsprechenden fields und Namen geändert werden.
growatt_math_array.php
(5.52 KiB) 6-mal heruntergeladen
mathe.php
(1.21 KiB) 7-mal heruntergeladen

Antworten