RCT Power Anbindung

Alle Wünsche die erledigt sind oder nie verwirklicht werden.

Moderator: Ulrich

SvenE
Beiträge: 11
Registriert: Mi 10. Nov 2021, 23:34
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: RCT Power Anbindung

Beitrag von SvenE »

Hallo kaijo,

Du kannst einfach innerhalb deines Dashboards oben rechts "add panel" - "add an empty panel" klicken. Dann wieder oben rechts deine gewünschte Darstellungsform auswählen, das steht bei neuen Panels auf Time Series.
Dann unten links Data source auswählen Solaranzeige, select measurement - Batterie und field(value) - SOC.
Damit sollte das Diagramm oberhalb die gewünschten Daten anzeigen. Rechts bei Title noch beschriften und fertig.

Ich hoffe die kurze Anleitung hilft :)

VG Sven

Raptor78
Beiträge: 4
Registriert: Di 12. Apr 2022, 18:41
Wohnort: Weilerswist
Hat sich bedankt: 3 Mal

Re: RCT Power Anbindung

Beitrag von Raptor78 »

Hallo zusammen,

habe seit Donnerstag auch eine PVA mit RCT Wechselrichter am Netz (Power Storage DC 10.0) und direkt mal die solaranzeige angebunden. Bin echt begeistert von der tollen Leistung. Derzeit habe ich aber noch drei kleine Probleme:

1. Wenn ich folgende Zeile aus der rct_wr.php richtig interpretiere, dann errechnet die solaranzeige die PV_Leistung aus den beiden Werten PV1_Leistung und PV2_Leistung und schreibt den Wert in die Datenbank

Code: Alles auswählen

$aktuelleDaten["PV_Leistung"] = $aktuelleDaten["PV1_Leistung"] + $aktuelleDaten["PV2_Leistung"];
Leider werden aber nicht die Werte von PV1 und PV2 gespeichert. Da meine Anlage jedoch einen String auf Ost- und Westseite hat, wäre genau diese Werte wichtig für mich.
InfluxPV.JPG
2. Ich möchte gerne Eigenverbrauch und Autarkie in Prozent berechnen und in die Datenbank schreiben. Herausgefunden habe ich, dass das wohl über die rct_wr_math.php möglich wäre. Sobald ich diese jedoch gemäß der Anleitung befülle, bekomme ich eine Fehlermeldung im php.log und es werden keine Daten mehr in die Datenbank geschrieben:

Code: Alles auswählen

PHP Warning:  hex2bin(): Hexadecimal input string must have an even length in /var/www/html/phpinc/funktionen.inc.php on line 7353
3. Im solaranzeige log treten recht häufig Lesefehler auf, die ich nicht deuten kann. Angebunden sind sowohl Wechselrichter, als auch der Raspi via LAN-Kabel:

Code: Alles auswählen

19.04. 15:30:02 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:30:02 +  -Die Daten werden ausgelesen...
19.04. 15:30:05    -Korrigierte Antwort = 00002fe3
19.04. 15:30:05  [ - Lesefehler aufgetreten. Abbruch! ]
19.04. 15:30:05    -[Raw] 00002fe3
19.04. 15:30:05 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:31:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:31:01 +  -Die Daten werden ausgelesen...
19.04. 15:31:02    -Korrigierte Antwort = 00002fe3
19.04. 15:31:02  [ - Lesefehler aufgetreten. Abbruch! ]
19.04. 15:31:02    -[Raw] 00002fe3
19.04. 15:31:02 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:32:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:32:01 +  -Die Daten werden ausgelesen...
19.04. 15:32:01    -Korrigierte Antwort = 002b0508cf053085437132afb203
19.04. 15:32:01    -Korrigierte Antwort = 002b050854b4684e437029349676002b0508c0df297800000000a821002b0508c0df297800000000a821
19.04. 15:32:01    -Korrigierte Antwort = 002b05082545e22d2d437048634175002b0508381b8bf900000000ae4c002b0508381b8bf900000000ae4c
19.04. 15:32:01    -Korrigierte Antwort = 002b0508b55ba2ce43ef3816491e002b05088b9ff0083f7851ec2ce0002b05088b9ff0083f7851ec2ce0
19.04. 15:32:02    -Korrigierte Antwort = 002b0508b004118743fcbbe306c4002b0508a616b022000000002d2d51002b0508a616b022000000002d2d51
19.04. 15:32:02    -Korrigierte Antwort = 002b0508db11855b4491698d11f9002b0508902afafb00000000932c002b0508902afafb00000000932c
19.04. 15:32:02    -Korrigierte Antwort = 637a69b8
19.04. 15:32:02  [ - Lesefehler aufgetreten. Abbruch! ]
19.04. 15:32:02    -[Raw] 637a69b8
19.04. 15:32:02 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:33:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:33:01 +  -Die Daten werden ausgelesen...
19.04. 15:33:05 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:34:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:34:01 +  -Die Daten werden ausgelesen...
19.04. 15:34:02    -Korrigierte Antwort = 002b0508cf05308543718144b518
19.04. 15:34:02    -Korrigierte Antwort = 002b050854b4684e43702ce0e27a002b05083c87c4f5c7403929be92002b05083c87c4f5c7403929be92
19.04. 15:34:02    -Korrigierte Antwort = 002b05082545e22d2d436fcc749bad002b05082f3c1d7d45864ea00bcb002b05082f3c1d7d45864ea00bcb
19.04. 15:34:02    -Korrigierte Antwort = 002b0508b55ba2ce43f66ee5ef89002b0508867def7d42e6459c4a39002b0508867def7d42e6459c4a39
19.04. 15:34:06 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:35:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:35:01 +  -Die Daten werden ausgelesen...
19.04. 15:35:05 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:36:02 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:36:02 +  -Die Daten werden ausgelesen...
19.04. 15:36:04  [ - Lesefehler aufgetreten. Abbruch! ]
19.04. 15:36:04    -[Raw] 002b05147924abd9303036354134303331353938000000002fe3
19.04. 15:36:04 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:37:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:37:01 +  -Die Daten werden ausgelesen...
19.04. 15:37:06 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:38:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:38:01 +  -Die Daten werden ausgelesen...
19.04. 15:38:05 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:39:01 |----------------   Start  rct_wr.php    -------------------------- 
19.04. 15:39:01 +  -Die Daten werden ausgelesen...
19.04. 15:39:06 |----------------   Stop   rct_wr.php    -------------------------- 
19.04. 15:40:01 |----------------   Start  rct_wr.php    -------------------------- 
Könnt ihr mir hierbei weiterhelfen?

VG, Dennis
Beste Grüße,
Dennis

14,58 kWp (36x Bauer BS-405-M10HB)
RCT Power Storage DC 10.0
RCT Power Battery 9.6

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

Re: RCT Power Anbindung

Beitrag von Ulrich »

Hallo Dennis,

bitte in einem Thread nicht gleich mehrere Fragen stellen. Die Beantwortung ist dann nicht so einfach.

1. Den Wert kannst du dir mit einer _math Datei selber in die Datenbank schreiben.
2. In deiner _math Datei sind PHP Befehle falsch angegeben. (Programmierfehler)
3. Hast du mehrere Wechselrichter in Bertrieb, die zusammengeschaltet sind?
--------------------------------------
Ulrich [Admin]

Raptor78
Beiträge: 4
Registriert: Di 12. Apr 2022, 18:41
Wohnort: Weilerswist
Hat sich bedankt: 3 Mal

Re: RCT Power Anbindung

Beitrag von Raptor78 »

Danke für den Hinweis und auch die schnelle Reaktion! Werde ich beim nächsten mal beachten ;) .

Kenne mich zwar absolut nicht mit php aus, aber wenn ich das richtig verstanden habe, wird doch alles in das Array $aktuelleDaten geschrieben und dann in die Datenbank geschrieben. Für eigene Berechnungen kann man sich aus dem Array "bedienen" und das Ergebnis ebenfalls im Array einfügen, bevor es in die DB geschrieben wird. Müssten die Werte für PV1_Leistung und PV2_Leistung dem folgenden Code zufolge nicht bereits in die Datenbank geschrieben werden?

Code: Alles auswählen

    
    $ID = "DB11855B";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["PV1_Leistung"] = $Ergebnis["Wert"];
    }
    else {
      goto Ausgang;
    }

    $ID = "0CB5D21B";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["PV2_Leistung"] = $Ergebnis["Wert"];
    }
    else {
      goto Ausgang;
    }
 
Da die Werte ja hier bereits ausgelesen werden und damit ja auch der Wert PV_Leistung berechnet wird, habe ich das mal wie folgt in die _math Datei geschrieben. php-Log zeigt nun zwar keine Fehler, aber die beiden Werte werden dennoch nicht in die Db geschrieben:

Code: Alles auswählen

<?php

$aktuelleDaten["ZusatzQuery"] = "PV PV1_Leistung=".$aktuelleDaten["PV1_Leistung"];
$aktuelleDaten["ZusatzQuery"] .= "PV PV2_Leistung=".$aktuelleDaten["PV2_Leistung"];
$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];

?>
Habe nur einen Wechselrichter.

Nachtrag:
Habe den Fehler glaub ich gefunden. Da muss noch ein Komma hinter den Wert.
Beste Grüße,
Dennis

14,58 kWp (36x Bauer BS-405-M10HB)
RCT Power Storage DC 10.0
RCT Power Battery 9.6

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

Re: RCT Power Anbindung

Beitrag von Ulrich »

Es werden meist mehr Werte ausgelesen, als in die Datenbank geschrieben werden. In diesem Fall wird nur der Gesamtbetrag in die Datenbank geschrieben. Die Umsetzung, was von den vielen Werten wirklich in die Datenbank geschrieben wird, findest du in dieser Datei:
/var/www/html/phpinc/funktionen.inc.php .. ab Zeile 3343
--------------------------------------
Ulrich [Admin]

Raptor78
Beiträge: 4
Registriert: Di 12. Apr 2022, 18:41
Wohnort: Weilerswist
Hat sich bedankt: 3 Mal

Re: RCT Power Anbindung

Beitrag von Raptor78 »

Guten Morgen,

kaum macht mans richtig, schon funktionierts. :lol: Vielen Dank für die Unterstützung! Nachfolgend mal meine _math-Datei. Vielleicht kann der ein oder andere was damit anfangen:

Code: Alles auswählen

#!/usr/bin/php
<?php

// Auslesen der zusätzlichen Werte

    $ID = "BD55905F";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["WattstundenGesamtACHeute"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "3C87C4F5";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["EinspeisungHeute"] = $Ergebnis["Wert"]*-1;
    }
    else {
      fclose($COM1);
    }

    $ID = "10970E9D";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["WattstundenGesamtACMonat"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "65B624AB";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["EinspeisungMonat"] = $Ergebnis["Wert"]*-1;
    }
    else {
      fclose($COM1);
    }

    $ID = "C0CC81B6";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["WattstundenGesamtACJahr"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "26EFFC2F";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["EinspeisungJahr"] = $Ergebnis["Wert"]*-1;
    }
    else {
      fclose($COM1);
    }

    $ID = "B1EF67CE";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["WattstundenGesamtACGesamt"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "44D4C533";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["EinspeisungGesamt"] = $Ergebnis["Wert"]*-1;
    }
    else {
      fclose($COM1);
    }

    $ID = "2F3C1D7D";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["HausverbrauchACHeute"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "F0BE6429";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["HausverbrauchGesamtACMonat"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }

    $ID = "C7D3B479";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["HausverbrauchGesamtACJahr"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$ID = "EFF4B537";
    $Ergebnis = $funktionen->rct_auslesen($COM1,$Command,$Laenge,$ID,$Form);
    if (is_array($Ergebnis)) {
      $aktuelleDaten["HausverbrauchGesamtACGesamt"] = $Ergebnis["Wert"];
    }
    else {
      fclose($COM1);
    }
	
	$aktuelleDaten["EigenverbrauchHeute"] = round($aktuelleDaten["WattstundenGesamtACHeute"] - $aktuelleDaten["EinspeisungHeute"],2);
	$aktuelleDaten["EigenverbrauchMonat"] = round($aktuelleDaten["WattstundenGesamtACMonat"] - $aktuelleDaten["EinspeisungMonat"],2);
	$aktuelleDaten["EigenverbrauchJahr"] = round($aktuelleDaten["WattstundenGesamtACJahr"] - $aktuelleDaten["EinspeisungJahr"],2);
	$aktuelleDaten["EigenverbrauchGesamt"] = round($aktuelleDaten["WattstundenGesamtACGesamt"] - $aktuelleDaten["EinspeisungGesamt"],2);

// Leistung String 1 und String 2
	$aktuelleDaten["ZusatzQuery"] = "PV PV1_Leistung=".$aktuelleDaten["PV1_Leistung"];
	$aktuelleDaten["ZusatzQuery"] .= ",PV2_Leistung=".$aktuelleDaten["PV2_Leistung"];
	$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
	$aktuelleDaten["ZusatzQuery"] .= "\n";
// Eigenverbrauch 
	$aktuelleDaten["ZusatzQuery"] .= "Eigenverbrauch EigenverbrauchHeute=".$aktuelleDaten["EigenverbrauchHeute"];
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchMonat=".$aktuelleDaten["EigenverbrauchMonat"];
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchJahr=".$aktuelleDaten["EigenverbrauchJahr"];
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchGesamt=".$aktuelleDaten["EigenverbrauchGesamt"];
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchHeutePZ=".round((1-($aktuelleDaten["EinspeisungHeute"] / $aktuelleDaten["WattstundenGesamtACHeute"]))*100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchMonatPZ=".round((1-($aktuelleDaten["EinspeisungMonat"] / $aktuelleDaten["WattstundenGesamtACMonat"]))*100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchJahrPZ=".round((1-($aktuelleDaten["EinspeisungJahr"] / $aktuelleDaten["WattstundenGesamtACJahr"]))*100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",EigenverbrauchGesamtPZ=".round((1-($aktuelleDaten["EinspeisungGesamt"] / $aktuelleDaten["WattstundenGesamtACGesamt"]))*100,1);
	$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
	$aktuelleDaten["ZusatzQuery"] .= "\n";
// Autarkie
	$aktuelleDaten["ZusatzQuery"] .= "Autarkie AutarkieHeutePZ=".round(($aktuelleDaten["EigenverbrauchHeute"] / $aktuelleDaten["HausverbrauchACHeute"]) * 100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",AutarkieMonatPZ=".round(($aktuelleDaten["EigenverbrauchMonat"] / $aktuelleDaten["HausverbrauchGesamtACMonat"]) * 100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",AutarkieJahrPZ=".round(($aktuelleDaten["EigenverbrauchJahr"] / $aktuelleDaten["HausverbrauchGesamtACJahr"]) * 100,1);
	$aktuelleDaten["ZusatzQuery"] .= ",AutarkieGesamtPZ=".round(($aktuelleDaten["EigenverbrauchGesamt"] / $aktuelleDaten["HausverbrauchGesamtACGesamt"]) * 100,1);
	$aktuelleDaten["ZusatzQuery"] .= " ".$aktuelleDaten["zentralerTimestamp"];
	$aktuelleDaten["ZusatzQuery"] .= "\n";

?>
Beste Grüße,
Dennis

14,58 kWp (36x Bauer BS-405-M10HB)
RCT Power Storage DC 10.0
RCT Power Battery 9.6

peter.oberhofer
Beiträge: 2
Registriert: So 6. Jun 2021, 15:09

Re: RCT Power Anbindung

Beitrag von peter.oberhofer »

Hallo Miteinander,

ich habe leider den Thread in letzter Zeit nicht weiter verfolgt.
Ich wollte Euch nur darauf hinweisen, dass es mittlerweile für das openWB Projekt eine wesentlich verbesserte Version meiner
RCT Power Python Implementierung gibt. Es lassen sich Werte im Burst auslesen und die Implementierung kann auch aktuell existierende Fehler der RCT Power Firmware handeln.
Wenn jemand interessiert ist, dass auch für Solaranzeige zu verwenden, dann findet ihr den pull request hier:
https://github.com/snaptec/openWB/pull/2114

Viele sonnige Grüße,
Peter

Raptor78
Beiträge: 4
Registriert: Di 12. Apr 2022, 18:41
Wohnort: Weilerswist
Hat sich bedankt: 3 Mal

Re: RCT Power Anbindung

Beitrag von Raptor78 »

Klingt interessant. Hier wird der WR denn hier ausgelesen. Auch über Python? Dann sollte man das doch integrieren können. Gerne unterstütze ich hierbei; zumindest als Tester. In Phyton und php habe ich leider keine Skills.
Beste Grüße,
Dennis

14,58 kWp (36x Bauer BS-405-M10HB)
RCT Power Storage DC 10.0
RCT Power Battery 9.6

Sun_Star
Beiträge: 5
Registriert: Mo 13. Jun 2022, 12:44
Hat sich bedankt: 1 Mal

Re: RCT Power Anbindung

Beitrag von Sun_Star »

Hallo Dennis,

habe auch eine PV mit RCT-Wechselrichter und gerade einen neuen Beitrag erstellt, da bei mir die Tagessummen (unten rechts im Standard RCT Dashboard) nicht richtig angezeigt werden. Wie sieht das bei Dir aus?
...inzwischen erledigt (man muss nur den Selector von "last" auf "max" umstellen und dann klappt es!) :)

Grüße, Rainer
Sonnige Grüße,
Rainer

12,92 kWp (34x Trina DE08M.08 380Wp) Ost/West-Ausrichtung
RCT Power Storage DC 10.0
RCT Power Battery 11.5

Antworten