Hier das Plugin. Vielleicht nicht unbedingt die eleganteste Variante, aber besser hab ich das mit meinen Perl-Kenntnissen nicht zustandegebracht. Aber funkioniert...
Code:
# Datenlogger PV-Anlage Kostal Piko 10.1 # v0.1 use LWP::Simple; my $Wechselrichter_IP = "pvserver:pvwr\@192.168.2.101"; # Standard IP Kostal Piko 10.1 my $CurrentDataPath = "/index.fhtml"; # Uebersicht aktuelle Leistungsdaten my $LogDownloadPath = "/LogDaten.dat"; # Log (TXT-Format) my @values; my $content = get( "[URL]http://$Wechselrichter_IP$CurrentDataPath[/URL]" ); return "PV-Datenabfrage fehlgeschlagen" unless defined $content; my @CurrentData = split( /\<td/, $content ); my $i = 0; foreach ( @CurrentData ) { $_ =~ s/\r//g; # Wagenrücklauf entfernen $_ =~ s/\n//g; # Zeilenumbruch entfernen $_ =~ />(.*)</; @values[$i] = $1; $i++; } $values[3] =~ s/<.+?>//g; my $WR_Name = $values[3]; my $AC_Leistung_Ges = $values[15]; update_rrd("Photovoltaik_P_AC","",$AC_Leistung_Ges,"GAUGE"); my $Gesamtenergie = $values[18]; update_rrd("Photovoltaik_W_total","",$Gesamtenergie,"GAUGE"); my $Tagesenergie = $values[27]; update_rrd("Photovoltaik_W_tag","",$Tagesenergie,"GAUGE"); my $WR_Status = $values[33]; my $DC1_U = $values[57]; update_rrd("Photovoltaik_U_DC1","",$DC1_U,"GAUGE"); my $DC1_I = $values[66]; update_rrd("Photovoltaik_I_DC1","",$DC1_I,"GAUGE"); my $DC1_P = $DC1_U * $DC1_I; update_rrd("Photovoltaik_P_DC1","",$DC1_P,"GAUGE"); my $DC2_U = $values[83]; update_rrd("Photovoltaik_U_DC2","",$DC2_U,"GAUGE"); my $DC2_I = $values[92]; update_rrd("Photovoltaik_I_DC2","",$DC2_I,"GAUGE"); my $DC2_P = $DC2_U * $DC2_I; update_rrd("Photovoltaik_P_DC2","",$DC2_P,"GAUGE"); # my $DC3_U = $values[109]; # my $DC3_I = $values[118]; # my $DC3_P = $DC3_U * $DC3_I; my $AC1_U = $values[60]; update_rrd("Photovoltaik_U_AC1","",$AC1_U,"GAUGE"); my $AC1_P = $values[69]; update_rrd("Photovoltaik_P_AC1","",$AC1_P,"GAUGE"); my $AC2_U = $values[86]; update_rrd("Photovoltaik_U_AC2","",$AC2_U,"GAUGE"); my $AC2_P = $values[95]; update_rrd("Photovoltaik_P_AC2","",$AC2_P,"GAUGE"); my $AC3_U = $values[112]; update_rrd("Photovoltaik_U_AC3","",$AC3_U,"GAUGE"); my $AC3_P = $values[121]; update_rrd("Photovoltaik_P_AC3","",$AC3_P,"GAUGE"); # return $WR_Status;
Kommentar