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