Hi
hab mir einen Raspberry Pi 3 zugelegt und einen IR Lesekopf. Damit kann ich erfolgreich meinen Stromzähler auslesen.
Es ist ein Doppeltarif Zähler (2x Einspeisung 2x Bezug). Nach der Anleitung http://wiki.volkszaehler.org/h…hz/itron_ace3000_type_260 war soweit ok und läuft auch ohne Probleme.
Mein Problem liegt wohl beim SBFspot. Diesen hab ich mit Hilfe von mehreren Anleitungen installiert und ich bekomme auch Ergebnisse. Leider crasht mein Pi nach einiger Zeit. D.h. es geht nicht mehr. Strom raus 10 sek. warten strom rein.
Dazu bekomme ich beim auslesen immer wieder timestemp fehler weil sich die Zeit warum auch immer umstellt.
So zu meiner Vorgehensweise:
Da ich 2 WR hab konnte ich nicht ganz nach der Anleitung http://wiki.volkszaehler.org/howto/wechselrichter_sma gehen. Ich musste 2 SMSspot config erstellen. Da ich immer 2x ETotal und 2x String 1 in meiem Log hatte das hat dazu geführt dass immer nur der letzte übernommen worden ist. Dazu hab ich auch zwei Perl Scripte erstellt.
#!/usr/bin/perl
use LWP::UserAgent;
sleep (15);
open STATUS, "/usr/local/bin/sbfspot.3/SBFspot -sp0 -v |"
or die "can't fork: $!";
while (<STATUS>) {
if (/ETotal:[ ]*(.*)kWh/){
&submitt("24af7080-e614-11e6-bea4-3591ab018ced", $1);
}
if (/String 1 Pdc:[ ]*(.*)kW/){
$value = $1;
$value =~ s/\.//g;
&submitt("eaace800-e54c-11e6-8a9c-d7c6453f406c", $value);
}
}
close STATUS or die "bad netstat: $! $?";
#------
sub submitt
{
$uuid = $_[0] ;
$val = $_[1] ;
print $uuid . " : " . $val . "\n";
my $server_endpoint = "http://localhost/middleware.php/data/${uuid}.json?value=" . $val;
# get("http://localhost/volkszaehler.org/htdocs/middleware.php/data/2d130060-dd27-11e3-b78b-738251a19608.json?value=" . $1)."\n";
#print "serverget = " . $server_endpoint . "\n";
# set custom HTTP request header fields
my $req = HTTP::Request->new(POST => $server_endpoint);
$req->header('content-type' => 'application/json');
$req->header('x-auth-token' => 'kfksj48sdfj4jd9d');
# add POST data to HTTP request body
$req->content(" ");
my $ua = LWP::UserAgent->new;
my $resp = $ua->request($req);
if ($resp->is_success) {
my $message = $resp->decoded_content;
print "Received reply: $message\n";
} else {
print "HTTP GET error code: ", $resp->code, "\n";
print "HTTP GET error message: ", $resp->message, "\n";
}
}
Alles anzeigen
und
#!/usr/bin/perl
use LWP::UserAgent;
open STATUS, "/usr/local/bin/sbfspot.3/SBFspot -sp0 -v -cfg/usr/local/bin/sbfspot.3/SBFspot1.cfg |"
or die "can't fork: $!";
while (<STATUS>) {
if (/ETotal:[ ]*(.*)kWh/){
&submitt("658f7970-e59e-11e6-b134-498d3a97b388", $1);
}
if (/String 1 Pdc:[ ]*(.*)kW/){
$value = $1;
$value =~ s/\.//g;
&submitt("f823f2e0-e54c-11e6-ad12-456fcbc54c8e", $value);
}
}
close STATUS or die "bad netstat: $! $?";
#------
sub submitt
{
$uuid = $_[0] ;
$val = $_[1] ;
print $uuid . " : " . $val . "\n";
my $server_endpoint = "http://localhost/middleware.php/data/${uuid}.json?value=" . $val;
# get("http://localhost/volkszaehler.org/htdocs/middleware.php/data/2d130060-dd27-11e3-b78b-738251a19608.json?value=" . $1)."\n";
#print "serverget = " . $server_endpoint . "\n";
# set custom HTTP request header fields
my $req = HTTP::Request->new(POST => $server_endpoint);
$req->header('content-type' => 'application/json');
$req->header('x-auth-token' => 'kfksj48sdfj4jd9d');
# add POST data to HTTP request body
$req->content(" ");
my $ua = LWP::UserAgent->new;
my $resp = $ua->request($req);
if ($resp->is_success) {
my $message = $resp->decoded_content;
print "Received reply: $message\n";
} else {
print "HTTP GET error code: ", $resp->code, "\n";
print "HTTP GET error message: ", $resp->message, "\n";
}
}
Alles anzeigen
erstellt. Diese laufen alle 5 min im Cron ab. Der 1. mit 15 sec. Pause damit der 2. Zeit hat abgearbeitet zu werden. Da ich vom 1. immer wieder keiner Werte bekommen hab. Damit wurde das Problem gelöst und ich bekomme alle 5 min einen Wert. Ja ich weiß Cron hat immer mit dem 2. Angefangen deswegen hab ich beim 1. den Stop rein
Hab gedacht dass es auch das Problem war, warum sich der Pi immer wieder aufgehängt hat. Leider war es nicht so und der Pi crasht weiter immer wieder zusammen. Ich hänge hier mal mein Syslog an. Da der über meine Kenntnis geht komme ich da nicht wirklich weiter. Inzw. ist er jeweils um 15 und 16 uhr gecrasht. Also genau eine Stunde später.....
Kann mir jemand da einen Tipp geben woran das liegt. Für Verbesserungen bin ich auch dankbar.