Heute habe ich das letzte "Rätsel" um meine vereinfachte und array-bezogene EigeneErweiterungen-Abfrage gelöst.
Code: Alles auswählen
#!/usr/bin/php
<?php
/////////////////////////////////////////////////////////////////////////////
// Raspberry Temperatur in die Infux Datenbank speichern
// Die Temperatur steckt in der Variable $RaspiTemp
//$funktionen->log_schreiben(print_r($aktuelleDaten,1)," ",1);
//Wenn der Wert auch in die LOG Datei geschrieben werden soll.
$funktionen->log_schreiben("Rasperry Temperatur: ".round($RaspiTemp,1)." °C",">",1);
$Datenbank[1] = "solaranzeige750";
$Datenbank[2] = "solaranzeige1650";
// $Datenbank[3] = "solaranzeige1000";
// $Datenbank[x] = "yz";
$Measurement[1] = "Summen";
$Measurement[2] = "AC";
$Measurement[3] = "PV";
// $Measurement[x] = "abcyz";
//////////////////////////////////////////////////////////////////////
// Datenbanknamen und Measuremnts müssen an die eigenen Einstellungen angepaßt werden
// Measurement[1]: Summen, Measurement[2]: AC, Measurement[3]: PV
// Hier wird der neueste Eintrag der Datenbank ausgelesen und im Array $DB[1], $DB[2] usw. gespeichert.
// Beispiel: $Datenbank[1] = "solaranzeige750" ist die Datenbank, welche mit 1.user.config.php bearbeitet wird
// $Datenbank[2] = "solaranzeige1650" ist die Datenbank, welche mit 2.user.config.php bearbeitet wird
//Die Measurements & Datenbanken durchlaufen zwei for-Schleifen und werden in Arrays zwischengespeichert
// $Datenbank[3] = "solaranzeige1000" ist die Datenbank, welche mit 3.user.config.php bearbeitet wird, und für das Hinzufügen der $aktuellenDaten verwendet wird
// möchte man weitere Datenbanken & Measurements hinzufügen, so ergänzt man nach obigen Muster
// ab hier darf und braucht nichts geändert werden
for ($e=1; $e <= count($Measurement); $e++) {
for ($i=1; $i <= count($Datenbank); $i++) {
$ch[$i] = curl_init('http://localhost/query?db='.$Datenbank[$i].'&precision=s&q='.urlencode('select * from '.$Measurement[$e].' order by time desc limit 1'));
curl_setopt($ch[$i], CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch[$i], CURLOPT_TIMEOUT, 15); //timeout in second s
curl_setopt($ch[$i], CURLOPT_CONNECTTIMEOUT, 12);
curl_setopt($ch[$i], CURLOPT_PORT, 8086);
curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, true);
$Ergebnis["result"] = curl_exec($ch[$i]);
$Ergebnis["rc_info"] = curl_getinfo ($ch[$i]);
$Ergebnis["JSON_Ausgabe"] = json_decode($Ergebnis["result"],true,10);
$Ergebnis["errorno"] = curl_errno($ch[$i]);
if ($Ergebnis["rc_info"]["http_code"] == 200 or $Ergebnis["rc_info"]["http_code"] == 204) {
$Ergebnis["Ausgabe"] = true;
}
curl_close($ch[$i]);
unset($ch[$i]);
if (!isset($Ergebnis["JSON_Ausgabe"]["results"][0]["series"])) {
log_schreiben("Es fehlt die Datenbank mit dem Measurement 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++) {
$DB[$i][$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($DB[$i],1)," ",10);
}
}
}
// bis hier durfte nichts geändert werden
// ab hier kommen die log_schreiben und $aktuellenDaten, welche man nach eigene Wünschen ändern muß
// meine Daten lauten wie unten
log_schreiben(" Leistung1: ".$DB[1]["Leistung"],"",8);
log_schreiben(" Leistung2: ".$DB[2]["Leistung"],"",8);
//log_schreiben(" Leistung3: ".$DB[3]["Leistung"],"",8);
//log_schreiben(" Leistung4: ".$DB[4]["Leistung"],"",8);
//log_schreiben(" Leistung5: ".$DB[5]["Leistung"],"",8);
log_schreiben(" Leistung_aktuell: ".$aktuelleDaten["AC_Leistung"],"",8);
//log_schreiben(" Gesamt_Leistung2: ".$DB[1]["Leistung"]+$aktuelleDaten["AC_Leistung"],"",8);
//log_schreiben(" Gesamt_Leistung3: ".$DB[1]["Leistung"]+$DB[2]["Leistung"]+$aktuelleDaten["A$
//log_schreiben(" Gesamt_Leistung4: ".$DB[1]["Leistung"]+$DB[2]["Leistung"]+$DB[3]["Leistung"$
//log_schreiben(" Gesamt_Leistung5: ".$DB[1]["Leistung"]+$DB[2]["Leistung"]+$DB[3]["Leistung"$
//log_schreiben(" Gesamt_Leistung6: ".$DB[1]["Leistung"]+$DB[2]["Leistung"]+$DB[3]["Leistung"$
/*
log_schreiben(" Leistung1: ".$DB[1]["Leistung"],"",8);
log_schreiben(" Leistung2: ".$DB[2]["Leistung"],"",8);
//log_schreiben(" Leistung2: ".$DB[3]["Leistung"],"",8);
log_schreiben(" Leistung3: ".$aktuelleDaten["AC_Leistung"],"",8);
log_schreiben(" Gesamt_Leistung: ".($DB[1]["Leistung"]+$aktuelleDaten["AC_Leistung"]),"",8);
log_schreiben(" Gesamt_Leistung3: ".($DB[1]["Leistung"]+$DB[2]["Leistung"]+$aktuelleDaten["AC_Leistung"]),"",8);
//log_schreiben(" Gesamt_Leistung4: ".($DB[1]["Leistung"]+$DB[2]["Leistung"]+$DB[3]["Leistung"]+$aktuelleDaten["AC_Leistung"]),"",8);
*/
log_schreiben(" Ertrag1: ".$DB[1]["Wh_Gesamt"],"",8);
log_schreiben(" Ertrag2: ".$DB[2]["Wh_Gesamt"],"",8);
log_schreiben(" Ertrag3: ".$aktuelleDaten["WattstundenGesamt"],"",8);
log_schreiben(" Gesamt_Ertrag: ".($DB[1]["Wh_Gesamt"]+$aktuelleDaten["WattstundenGesamt"]),"",8);
log_schreiben(" Gesamt_Ertrag3: ".($DB[1]["Wh_Gesamt"]+$DB[2]["Wh_Gesamt"]+$aktuelleDaten["WattstundenGesamt"]),"",8);
log_schreiben(" ErtragH1: ".$DB[1]["Wh_Heute"],"",8);
log_schreiben(" ErtragH2: ".$DB[2]["Wh_Heute"],"",8);
log_schreiben(" ErtragH3: ".$aktuelleDaten["WattstundenGesamtHeute"],"",8);
log_schreiben(" Gesamt_ErtragH: ".($DB[1]["Wh_Heute"]+$aktuelleDaten["WattstundenGesamtHeute"]),"",8);
log_schreiben(" Gesamt_ErtragH3: ".($DB[1]["Wh_Heute"]+$DB[2]["Wh_Heute"]+$aktuelleDaten["WattstundenGesamtHeute"]),"",8);
log_schreiben(" PVLeistung1: ".$DB[1]["String1_Leistung"],"",8);
log_schreiben(" PVLeistung2: ".$DB[2]["String1_Leistung"],"",8);
log_schreiben(" PVLeistung3: ".$aktuelleDaten["PV_Leistung1"],"",8);
log_schreiben(" Gesamt_PVLeistung: ".($DB[1]["String1_Leistung"]+$aktuelleDaten["PV_Leistung1"]),"",8);
log_schreiben(" Gesamt_PVLeistung3: ".($DB[1]["String1_Leistung"]+$DB[2]["String1_Leistung"]+$aktuelleDaten["PV_Leistung1"]),"",8);
$aktuelleDaten["ZusatzQuery"] = "Dashboard Ertrag1=".$DB[1]["Wh_Gesamt"].",Ertrag2=".$DB[2]["Wh_Gesamt"].",Ertrag3=".$aktuelleDaten["WattstundenGesamt"];
$aktuelleDaten["ZusatzQuery"] .= ",ErtragH1=".$DB[1]["Wh_Heute"].",ErtragH2=".$DB[2]["Wh_Heute"].",ErtragH3=".$aktuelleDaten["WattstundenGesamtHeute"];
$aktuelleDaten["ZusatzQuery"] .= ",Gesamt_Ertrag3=".($DB[1]["Wh_Gesamt"]+$DB[2]["Wh_Gesamt"]+$aktuelleDaten["WattstundenGesamt"]);
$aktuelleDaten["ZusatzQuery"] .= ",Gesamt_ErtragH3=".($DB[1]["Wh_Heute"]+$DB[2]["Wh_Heute"]+$aktuelleDaten["WattstundenGesamtHeute"]);
$aktuelleDaten["ZusatzQuery"] .= ",Leistung1=".$DB[1]["Leistung"].",Leistung2=".$DB[2]["Leistung"].",Leistung3=".$aktuelleDaten["AC_Leistung"];
$aktuelleDaten["ZusatzQuery"] .= ",Gesamt_Leistung3=".($DB[1]["Leistung"]+$DB[2]["Leistung"]+$aktuelleDaten["AC_Leistung"]);
//$aktuelleDaten["ZusatzQuery"] .= ",Gesamt_Leistung4=".($DB[1]["Leistung"]+$DB[2]["Leistung"]+$DB[3]["Leistung"]+$aktuelleDaten["AC_Leistung"]);
$aktuelleDaten["ZusatzQuery"] .= ",PVLeistung1=".$DB[1]["String1_Leistung"].",PVLeistung2=".$DB[2]["String1_Leistung"].",PVLeistung3=".$aktuelleDaten["PV_Leistung1"];
$aktuelleDaten["ZusatzQuery"] .= ",Gesamt_PVLeistung3=".($DB[1]["String1_Leistung"]+$DB[2]["String1_Leistung"]+$aktuelleDaten["PV_Leistung1"]);
$aktuelleDaten["ZusatzQuery"] .= ",RaspiTemp=".round($RaspiTemp,1);
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
?>