howto:wechselrichter_sma
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| howto:wechselrichter_sma [2014/05/20 22:25] – mikemiller | howto:wechselrichter_sma [2018/04/01 15:56] (aktuell) – Titel jau | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===Anleitung für den Wechselrichter SMA === | + | ===(verschobene Seite)=== |
| - | + | #redirect hardware:channels:solar_inverters:sma | |
| - | + | ||
| - | Ich besitze den Wechselrichter STP 9000TL-20 [[http:// | + | |
| - | SMAspot -sp0 -v | + | |
| - | + | ||
| - | Ich möchte den Gesamtertrag, | + | |
| - | Hierzu habe ich für den Gesamtertrag einen Kanal | + | |
| - | El. Energie | + | |
| - | und für den Ertrag je String | + | |
| - | El. Energie (Leistungswerte) | + | |
| - | angelegt. Die UUID sind später im Script einzutragen. | + | |
| - | Anbei das Script: | + | |
| - | + | ||
| - | < | + | |
| - | # | + | |
| - | use LWP:: | + | |
| - | open STATUS, "/ | + | |
| - | or die " | + | |
| - | while (< | + | |
| - | if (/ETotal:[ ]*(.*)kWh/ | + | |
| - | & | + | |
| - | + | ||
| - | } | + | |
| - | if (/String 1 Pdc:[ ]*(.*)kW/ | + | |
| - | $value | + | |
| - | $value | + | |
| - | & | + | |
| - | + | ||
| - | + | ||
| - | } | + | |
| - | if (/String 2 Pdc:[ ]*(.*)kW/ | + | |
| - | $value | + | |
| - | $value =~ s/\.//g; | + | |
| - | & | + | |
| - | } | + | |
| - | } | + | |
| - | close STATUS or die "bad netstat: $! $?"; | + | |
| - | + | ||
| - | #------ | + | |
| - | sub submitt | + | |
| - | { | + | |
| - | $uuid = $_[0] ; | + | |
| - | $val = $_[1] ; | + | |
| - | print $uuid . " | + | |
| - | + | ||
| - | + | ||
| - | my $server_endpoint = "http:// | + | |
| - | # get(" | + | |
| - | #print " | + | |
| - | + | ||
| - | # set custom HTTP request header fields | + | |
| - | my $req = HTTP:: | + | |
| - | $req-> | + | |
| - | $req-> | + | |
| - | + | ||
| - | # add POST data to HTTP request body | + | |
| - | $req-> | + | |
| - | + | ||
| - | my $ua = LWP:: | + | |
| - | my $resp = $ua-> | + | |
| - | if ($resp-> | + | |
| - | my $message = $resp-> | + | |
| - | print " | + | |
| - | } else { | + | |
| - | print "HTTP GET error code: ", $resp-> | + | |
| - | print "HTTP GET error message: ", $resp-> | + | |
| - | } | + | |
| - | + | ||
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | Das Script wird dabei einmal pro Minute mit cron aufgerufen. | + | |
| - | < | + | |
| - | * * * * * / | + | |
| - | </ | + | |
| - | + | ||
| - | Um den Eigenverbrauch zu bestimmen bilde ich die Differenz zwischen der Einspeisung, | + | |
| - | + | ||
| - | < | + | |
| - | # | + | |
| - | echo ' | + | |
| - | delete from `data` where `timestamp` = (select * from (select max(timestamp) from data where channel_id = 7) x) and channel_id = 7 | + | |
| - | ' | mysql --user=vz --password=fdfdfdfdf volkszaehler -T | + | |
| - | echo ' | + | |
| - | INSERT INTO `data`( `channel_id`, | + | |
| - | SELECT | + | |
| - | max(case when `channel_id` | + | |
| - | max(case when `channel_id` | + | |
| - | FROM `data` where channel_id in (2,4) | + | |
| - | and timestamp > (select max(timestamp) from data where `channel_id` = 7) | + | |
| - | group by floor(`timestamp`/ | + | |
| - | inner join data data_4 on timestamp_4 | + | |
| - | ' | mysql --user=vz --password=fdfdfdfdf volkszaehler | + | |
| - | + | ||
| - | echo ' | + | |
| - | delete from `data` where channel_id = 8 | + | |
| - | ' | mysql --user=vz --password=fdfdfdfdf volkszaehler -T | + | |
| - | #and timestamp > (select max(timestamp) from data where `channel_id` = 8) | + | |
| - | + | ||
| - | echo ' | + | |
| - | INSERT INTO `data`( `channel_id`, | + | |
| - | SELECT | + | |
| - | max(case when `channel_id` | + | |
| - | max(case when `channel_id` | + | |
| - | FROM `data` where channel_id in (1,7) | + | |
| - | group by floor(`timestamp`/ | + | |
| - | inner join data data_1 on timestamp_1 | + | |
| - | ' | mysql --user=vz --password=fdfdfdfdf volkszaehler | + | |
| - | + | ||
| - | </ | + | |
| - | auch diese Script wird mit cron gestartet, aber nur ein mal die Stunde. | + | |
| - | < | + | |
| - | 1 * * * * bash / | + | |
| - | </ | + | |
| - | + | ||
| - | Und so sieht es aus: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
howto/wechselrichter_sma.1400617521.txt.gz · Zuletzt geändert: von mikemiller