Datenbankeinträge in neuer Datenbank berechnen

Wenn mehr als ein Gerät an den Raspberry angeschlossen werden sollen. Z.B. ein Regler und ein Wechselrichter oder mehrere Wechselrichter. Das Maximum sind 6 Geräte pro Raspberry Pi.

Moderator: Ulrich

sdorok
Beiträge: 9
Registriert: Sa 24. Aug 2019, 17:13

Re: Datenbankeinträge in neuer Datenbank berechnen

Beitrag von sdorok »

Hallo, zusammen,
edit:
Hat sich erledigt, das Problem wurde hier bereits gelöst. Vielen Dank!
ich versuche mithilfe der math.php aus dem 3. Posting hier meine Multiregler Version mit einem KOSTAL Plenticore und einem KOSTAL Pico 3. Generation zusammen zu führen.

Die Multiregler-Geschichte läuft soweit, ich kann in Grafana die Daten des 2. WR auch korrekt auslesen:

Code: Alles auswählen

06.01. 10:35:01    -Multi Regler Auslesen [Start].
06.01. 10:35:01    -Verarbeitung von: '1.user.config.php'   Regler: 17
06.01. 10:35:01 |----------------   Start  kostal_plenticore.php    --------------- 
06.01. 10:35:01    -Kostal: 192.168.178.95 Port: 1502 GeräteID: 71
06.01. 10:35:02 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
06.01. 10:35:02    -Multi-Regler-Ausgang. 7
06.01. 10:35:09    -OK. Datenübertragung erfolgreich.
06.01. 10:35:09 |----------------   Stop   kostal_plenticore.php    --------------- 
06.01. 10:35:09    -Verarbeitung von: '2.user.config.php'   Regler: 17
06.01. 10:35:09 |----------------   Start  kostal_plenticore.php    --------------- 
06.01. 10:35:09    -Kostal: 192.168.178.202 Port: 1502 GeräteID: 71
06.01. 10:35:10 *  -Daten zur lokalen InfluxDB [ solaranzeige2 ] gesendet. 
06.01. 10:35:10    -Multi-Regler-Ausgang. 7
06.01. 10:35:17    -OK. Datenübertragung erfolgreich.
06.01. 10:35:17 |----------------   Stop   kostal_plenticore.php    --------------- 
06.01. 10:35:17    -Multi Regler Auslesen [Stop].
Ich habe mir die math.php von oben geladen und den Namen der DB angepasst - von "WR1" und "WR2" auf "solaranzeige" und "solaranzeige2":

Code: Alles auswählen

/****************************************************************************
//  InfluxDB  Zugangsdaten ...stehen in der user.config.php
 ****************************************************************************/

$WR1 = "solaranzeige";
$WR2 = "solaranzeige2";

if ($InfluxDBName == $WR1) {
    $funktionen->log_schreiben("WR1 ohne Berechnung der Summen...", "   ", 7);
    goto Ausgang;
}
Allerdings scheinen keinen Berechnungen angestellt zu werden, das Log zeiht sowohl beim Auslesen von WR1 (Plenticore) als auch WR2 (Pico), an dass keine Summierung vorgenommen wurde:

Code: Alles auswählen

06.01. 10:39:01    -Multi Regler Auslesen [Start].
06.01. 10:39:01    -Verarbeitung von: '1.user.config.php'   Regler: 17
06.01. 10:39:01 |----------------   Start  kostal_plenticore.php    --------------- 
06.01. 10:39:01    -Kostal: 192.168.178.95 Port: 1502 GeräteID: 71
06.01. 10:39:02    -WR1 ohne Berechnung der Summen...
06.01. 10:39:03 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
06.01. 10:39:03    -Multi-Regler-Ausgang. 6
06.01. 10:39:09    -OK. Datenübertragung erfolgreich.
06.01. 10:39:09 |----------------   Stop   kostal_plenticore.php    --------------- 
06.01. 10:39:09    -Verarbeitung von: '2.user.config.php'   Regler: 17
06.01. 10:39:09 |----------------   Start  kostal_plenticore.php    --------------- 
06.01. 10:39:09    -Kostal: 192.168.178.202 Port: 1502 GeräteID: 71
06.01. 10:39:09    -WR1 ohne Berechnung der Summen...
06.01. 10:39:09 *  -Daten zur lokalen InfluxDB [ solaranzeige2 ] gesendet. 
06.01. 10:39:09    -Multi-Regler-Ausgang. 8
06.01. 10:39:17    -OK. Datenübertragung erfolgreich.
06.01. 10:39:17 |----------------   Stop   kostal_plenticore.php    --------------- 
06.01. 10:39:17    -Multi Regler Auslesen [Stop].
Kann mir jemand von Euch einen Tipp geben, wo ich hier einen (Denk-)Fehler habe?

Vielen Dank und beste Grüße,
Sebastian

Benutzeravatar
Ulrich
Administrator
Beiträge: 5996
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 153 Mal
Danksagung erhalten: 814 Mal
Kontaktdaten:

Re: Datenbankeinträge in neuer Datenbank berechnen

Beitrag von Ulrich »

Es muss heißen:

Code: Alles auswählen

if ($InfluxDBLokal == $WR1) {
    $funktionen->log_schreiben("WR1 ohne Berechnung der Summen...", "   ", 7);
    return;
}
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

sdorok
Beiträge: 9
Registriert: Sa 24. Aug 2019, 17:13

Re: Datenbankeinträge in neuer Datenbank berechnen

Beitrag von sdorok »

Vielen Dank für den Hinweis!

jkoopmann
Beiträge: 20
Registriert: Sa 4. Mär 2023, 11:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Datenbankeinträge in neuer Datenbank berechnen

Beitrag von jkoopmann »

So ich habe das heute auch mal bei mir integriert. Läuft gut... Bis...

Ja bis ich die beiden Wechselrichter versuche mehrfach die Minute auszulesen. So wie in der Doku beschrieben habe ich

1.user.config.php auf 3.user.config.php und
2.user.config.php auf 4.user.config.php kopiert und die Geräte ID angepasst.

Die Einzelwerte stimmen aber die über diese Methode berechneten Werte stimmen nicht. Wann werden denn die Dinge in die Influx geschrieben? Immer erst nach dem letzten Run? Denn dann wäre es ja klar, dass die select last queries noch falsche Werte ermitteln und aufaddieren...

Sieht jemand ein Möglichkeit, das Beste aus zwei Welten zu besorgen? Ich befürchte fast, dass man dann statt über Influx-Queries zu gehen die Werte vom Wechselrichter 1 jeweils in eine Textdatei (wie z.B. beim Gen24 in das Verzeichnis Database) schreiben und dann bei WR2 von dort lesen muss oder?

jkoopmann
Beiträge: 20
Registriert: Sa 4. Mär 2023, 11:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Datenbankeinträge in neuer Datenbank berechnen

Beitrag von jkoopmann »

Hmmm. Kommando zurück. Der Fehler liegt wohl woanders.

Ich habe ja einen Gen24. Wenn ich den nur als Gerät 1 auslese, stimmen die Werte für Wh_Heute. Wenn ich den dann zusätzlich als Gerät 3 auslese, ist der Wert 0. Bei näherem drüber nachdenken: Da der Gen24 leider bei "Tagesenergie" immer ein null zurück gibt, speichert der Code einen Wert zwischen, liest den aus und addiert dann die Stringspannung der drei Strings (/60) drauf. Die Cachedatei hat die Gerätenummer drinnen. D.h. es gibt wenn ich dreimal pro Minute über den im Handbuch beschriebenen Trick abrufe natürlich drei Cachedateien. Und da ich das eben erst im Laufe des Tages eingerichtet habe, ist eine Cachedatei schon mit >0 gefüllt und die anderen nicht. Leistung gibts vom Dach auch keine und schon habe ich bei einem Lauf einen kumulierten Wert und bei den anderen 0.

Bin nur unklar, ob ich das irgendwie ändern/verbessern kann... Alles klappt nur Wh_Heute nicht, weil der Gen24 hier leider in der API eine Meise hat. Ich mach mal einen Case bei Fronius auf....

Antworten

Zurück zu „Multi-Regler-Version [ bis zu 6 Geräten an einem Raspberry Pi ]“