ich bekomme zwar meine Werte aus der _math.php in die Influxdb, im Solaranzeige.log, sieht das Format aber grausig aus.
Das ist vermutlich nur Kosmetik, trotzdem hätte ich es gerne bereinigt und am Ende zumindest in etwa verstanden was ich falsch gemacht habe. Da gibts bestimmt genug, denn PHP kann ich ja nicht ...
Könntet Ihr bitte mal draufschauen?
Code: Alles auswählen
<?php
$funktionen->log_schreiben("Goodwe_wr_math.php durchlaufen."," ",1);
// So wird ein Register ausgelesen
$Befehl["DeviceID"] = "F7";
$Befehl["BefehlFunctionCode"] = "03";
$Befehl["RegisterAddress"] = "0530";
$Befehl["RegisterCount"] = "0001";
$rc = $funktionen->phocos_pv18_auslesen($USB1,$Befehl);
$aktuelleDaten["Backup_Load_Power"] = hexdec($rc["data"]);
// Setzen des Vorzeichens
$aktuelleDaten["Batterie_Ladung"] = 0;
$aktuelleDaten["Batterie_Entladung"]= 0;
if ($aktuelleDaten["Batterie_Mode"] == 3){
$aktuelleDaten["Batterie_Ladung"]= $aktuelleDaten["Batterie_Leistung"];
}
if ($aktuelleDaten["Batterie_Mode"] == 2){
$aktuelleDaten["Batterie_Entladung"] = $aktuelleDaten["Batterie_Leistung"];
}
// So wird die Zusatz Query zusammengestellt.
// Am Anfang steht das Measurement "AC" Danach muss eine Leerstelle kommen.
// Dann Feldname=Wert,Feldname=Wert,usw...
// Alle Daten werden in die Datenbank des Goodwe WR geschrieben.
// Der Zeitstempel ist der 'zentrale Timestempel'
// Damit ist die Visualisierung in Grafana sehr einfach.
$aktuelleDaten["ZusatzQuery"] = "AC BackupLoadPower=".$aktuelleDaten["Backup_Load_Power"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "Batterie Ladung=".$aktuelleDaten["Batterie_Ladung"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "Batterie Entladung=".$aktuelleDaten["Batterie_Entladung"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
$aktuelleDaten["ZusatzQuery"] .= "Service RaspiTemp=".round($RaspiTemp,1);
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
$aktuelleDaten["ZusatzQuery"] .= "\n";
// wenn alle ausgelesenen Daten auch in der solaranzeige.log angezeigt werden sollen den Doppelslash (//)entfernen
$funktionen->log_schreiben(print_r($aktuelleDaten,1)," ",1);
return;
?>
Code: Alles auswählen
[Regler] => 52
[Objekt] => MC-City
[Produkt] => Goodwe
[Backup_Load_Power] => 121
[Batterie_Ladung] => 0
[Batterie_Entladung] => 545
[ZusatzQuery] => AC BackupLoadPower=121 1641917861
Batterie Ladung=0 1641917861
Batterie Entladung=545 1641917861
Service RaspiTemp=45 1641917861
[Timestamp] => 1641917848
[Monat] => 1
[Woche] => 02
[Wochentag] => Dienstag
[Datum] => 11.01.2022
[Uhrzeit] => 17:17:28
[InfluxAdresse] => 192.168.178.54