Hallo,
ich versuche seit einigen Wochen mit den Daten des Zweirichtungszählers mit Volkszähler und des SMA Wechselrichter mit SBFspot etwas anzufangen. Für den Anfang würde es schon einmal etwas bringen die Wechselrichter Daten in den Volkszähler zu bringen.
Auf einem Raspi laufen der Volkszähler stabil und liest den Zähler aus. Ausserdem kann ich mit SBFspot Daten aus dem WR lesen.
Ich habe von diser Seite:
https://wiki.volkszaehler.org/hardware/channels/solar_inverters/sma?s[]=sbfspot das Perl Script für mich umgeschrieben:
- #!/usr/bin/perl
- use LWP::UserAgent;
- open STATUS, "/usr/local/bin/sbfspot.3/SBFspot -sp0 -v |"
- or die "can't fork: $!";
- while (<STATUS>) {
- if (/ETotal:[ ]*(.*)kWh/){
- &submitt("6e600ce0-94f4-11e8-b41a-bfa0d6b67ae5", $1);
- }
- }
- close STATUS or die "bad netstat: $! $?";
- #------
- sub submitt
- {
- $uuid = $_[0] ;
- $val = $_[1] ;
- print $uuid . " : " . $val . "\n";
- # my $server_endpoint = "http://localhost/volkszaehler.org/htdocs/middleware.php/data/${uuid}.json?value=" . $val;
- my $server_endpoint = "http://127.0.0.1/volkszaehler.org/htdocs/middleware.php/data/${uuid}.json?value=" . $val;
- # get("http://localhost/volkszaehler.org/htdocs/middleware.php/data/ 165f81e0-829f-11e8-b87f-4509229166d5.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";
- }
- }
Im Frontend habe einen Kanal el. Energie angelegt und die UUID in das Script eingetragen.
In der contab wird das Script so aufgerufen:
im smapl.txt steht jedoch nur:
und es werden keine Daten im Frontend angezeigt.
Wo mache ich einen Fehler?
mfg Ralf