SMA Energy Meter auswerten

Endlich habe ich es geschafft die Werte des Ende letzten Jahres eingebauten SMA Energy Meter auszuwerten. Dabei gab es gleich zwei HĂŒrden zu nehmen: Zeit und Unwissen 🙂 Wobei das Unwissen die benötigte Zeit in unbekannte Dimensionen trieb. Denn das Programm zur Auswertung der Datenpakete des SMA EM ist in C geschrieben und bis dato wusste ich gerade mal, dass C eine Programmiersprache ist. Dank vieler Google Suchen und Forenpostings konnten die HĂŒrden nach und nach genommen werden und das fertige Produkt erfreut den Frickler aus dem Heim und Hobbybereich – mich 🙂

Das SMA Energy Meter kann sich jeder Haus- und Wohnungsbesitzer in seinen Sicherungsschrank einbauen lassen. Es gibt hier keine zwingende Verbindung mit einer Photovoltaikanlage. Logischerweise wird dann nur der importierte Strom ausgewertet. FĂŒr Android und iOS gibt es Apps um sich die Daten in Realtime anzeigen zu lassen.

Wie sieht jetzt das Ergebnis meiner Bastelei aus?

Auswertung der 3 Phasen im Haus
Auswertung Last der 3 Phasen im Haus (15 Minuten)

Der erste Teil visualisiert die Last auf den 3 Phasen im Haus. FĂŒr jede Phase (L1, L2 und L3) wird ermittelt, ob Strom von EVU gezogen wird (Import) oder ob Strom „ĂŒbrig“ ist und zum EVU exportiert wird (Export). Übrig bedeutet, von der Solaranlage erzeugter Strom abzĂŒglich Eigenverbrauch.

Auswertung Import, Export und PV Leistung
Auswertung Import, Export und Solarertrag (15 Minuten)

Aufsummiert ergibt sich dieses Bild. ZusĂ€tzlich wird noch die gerade gelieferte Leistung der PV Anlage angezeigt. Die grafische Aufarbeitung ĂŒbernimmt Highcharts.

Was wurde alles gemacht um das Ergebnis zu erhalten?
1. Ein Programm in C geschrieben, dass die Multicast Pakete vom SMA Energy Meter aufnimmt und in eine SQLite Datenbank schreibt
2. Installation und Konfiguration von SBFSpot, ein Programm zur Auswertung von SMA Wechselrichtern. Die gewonnenen Daten werden ebenfalls in eine SQLite DB geschrieben
3. Erstellung einer Webseite, die die gespeicherten Daten aus der Datenbank ausliest und grafisch darstellt.

Getestet wurde das meiste davon auf einem Raspberry Pi2 (die Quadcore Variante). Das Livesystem ist ein Ubuntu Linux unter ESXi. Der Pollingintervall betrÀgt 1 Minute. Auf dem Pi hatte ich auch mit 5 Sekunden experimentiert. LÀsst man sich dann aber mehrere Tage gleichzeitig anzeigen, dauert die Darstellung von 100.000 DatensÀtzen recht lange.

ToDo: Optimierung der Webseite um z.B. einzelne Tage auszuwerten. Im Moment kann man sich nur die letzten XYZ Minuten anzeigen lassen.

Mein Dank geht an die Helfer aus dem Computerbase Unterforum fĂŒr Programmierung, Fefe, JĂŒrgen Wolf fĂŒr das Buch Linux-Unix Programmierung und EB-Systeme fĂŒr die Protokollanalyse.

Update: Livedaten

Solarertrag, Export und Import
Solarertrag, Export und Import (12 Stunden)

Relaix Fiberlinx.Home

Relaix Fiberlinx.Home 250 Glasfaseranschluß – Uploaderhöhung auf 50 MBit

Seit April nutzen wir jetzt den Fiberlinx.Home Anschluß der Relaix. Die dafĂŒr nötige Glasfaser wurde uns vom regionalen Energieversorger, der Enwor, bereitgestellt. Im Laufe der Woche wurde der Upload kostenlos von 10 MBit auf 50 MBit erhöht. Damit liegt die Relaix mit ihrem Fiberlinx.Home 250 Anschluss weit vor der Kupferkonkurrenz. Nicht nur was die Bandbreite betrifft, sondern auch technologisch. Bleibt noch zu erwĂ€hnen, dass die letzten zwei Monate absolut störungsfrei verliefen und wir mit dem Anschluss mehr als zufrieden sind.

Fiberlinx.Home 250
Relaix Fiberlinx.Home 250

Die bereitgestellte Geschwindigkeit wird, schnelle Gegenstelle vorausgesetzt, regelmĂ€ĂŸig erreicht.

Selber Bier brauen

Was könnte man Karfreitags besseres machen, als sein eigenes Bier zu brauen? Eben. Zum EigenbrĂ€u fĂŒhren viele Wege. Ich habe mich fĂŒr den einfachen Weg entschieden und ein Brauset von Besserbrauer gekauft. Das kostet 75 Euro und enthĂ€lt die meisten Utensilien, die man zum Brauen benötigt. Meine Wahl fiel auf die Sorte „Hell“. Aus der eigenen KĂŒche benötigt man noch einen, besser zwei große Kochtöpfe (8-10 Liter, hat nicht Jedermann), einen Kochlöffel, einen Messbecher, ein großes grobmaschiges KĂŒchensieb, eine (grammgenaue) KĂŒchenwaage und einen Trichter. WĂ€hrend der Woche GĂ€rung hast Du außerdem Zeit, 12 leere Bierflaschen fĂŒr die AbfĂŒllung zu sammeln. Ich habe Flensburger (0.33 Liter, BĂŒgelverschluss) benutzt. Wer lieber 0.5 Liter Flaschen nehmen möchte, kann zB. Zischke Kellerbier (gibt es u.a. im Trinkgut) kaufen – ebenfalls mit BĂŒgelverschluss.

Ein ganzer Brautag dauert ungefĂ€hr 6 Stunden. Angefangen beim Bereitstellen der Utensilien und endet mit der Reinigung der KĂŒche. Der erste Schritt ist das Anmischen der Maische. Die Malzmischung muss hier unter stĂ€ndigem RĂŒhren eine Stunde lang auf 67-69 Grad gehalten werden. So erhĂ€lt man die BierwĂŒrze.

IMG_20150403_103037867

Nach einer Stunde schöpft man das Malz in ein Sieb und beginnt mit dem LĂ€utern. Hierbei wird die WĂŒrze mehrfach durch das Malz im Sieb gegossen um den Restzucker aus dem Malz zu lösen.

IMG_20150403_103053035

IMG_20150403_121931168

Ist man mit dem LĂ€utern fertig kommen noch 3 Liter Wasser zur WĂŒrze dazu und man beginnt mit dem Hopfenkochen. Dazu werden die ca. 6-7 Liter WĂŒrze 3 Stunden lang gekocht. Nach einiger Zeit gibt man den Hopfen dazu.

IMG_20150403_130805962

Der letzte Schritt vor der GĂ€rung ist das AbfĂŒllen in den GĂ€rbehĂ€lter, der im Set enthalten ist. Fertig abgefĂŒllt und nach dem HinzufĂŒgen der Hefe sieht das dann so aus. Der GĂ€rspund sorgt dafĂŒr, dass das CO2 entweichen kann.

IMG_20150403_152257019

Die GÀrzeit betrÀgt eine Woche. Die Hefe hat sich am Boden abgesetzt und der Schaum ist verschwunden. Das Bier ist deutlich klarer geworden.

IMG_20150411_100344490

Hier beginnt jetzt die FlaschenfĂŒllung unter Beimischung von ein wenig Zucker (oder Alternativ RestwĂŒrze, die man aufgehoben hat). In den Flaschen muss das Bier 3 Wochen gĂ€ren. Nach 4 langen Wochen des Wartens darf das erste Glas probiert und genossen werden.

IMG_20150502_134941

Ich finde, das kann sich sehen lassen. Und schmecken natĂŒrlich auch 🙂

Shuttle DS57U – Performance als Firewall *Update*

Eigentlich war der Zotac CI321 Barebone als neue Firewall angedacht. Der Releasetermin lies recht lange auf sich warten und als die ersten HĂ€ndler das Teil verfĂŒgbar hatten, wurde ich auf eine Alternative aufmerksam: Shuttle DS57U mit Intel Broadwell.

Die groben Specs:

Intel Celeron 3205U CPU, 2 Kerne, 2 Threads
Zwei SO-Dimm SteckplÀtze
Ein 2.5 Zoll Slot fĂŒr HDD oder SDD
Zwei MiniPCIe SteckplÀtze (Full- und Halfsize)
Ein MiniPCIe Steckplatz mit Realtek Wifi Karte (150 MBit)
Zwei Intel NICs onboard:
– Intel i211 Ethernet Controller mit MAC, PHY und PCIe-Schnittstelle
– Intel i218LM PHY verbunden mit dem MAC des Prozessors
Integrierter SD Kartenleser
2x USB3, 4x USB2
HDMI und Displayport

Details findet man auf der Shuttle Seite.

Als Massenspeicher diente mir eine Sandisk 16 GB Micro SDHC Karte (UHS 1). FĂŒr den RAM habe ich ein Crucial Modul mit 4 GB DDR3 Low Voltage eingebaut. Installiert wurde IPFire in der aktuellen Version 2.17 mit Core Update 89. Die Intel i211 habe ich als grĂŒnes, internes Interface genutzt. Entsprechend die Intel i218LM als rote, externe Schnittstelle.

Wozu aber der spĂ€te Sinneswandel vom Zotac zum Shuttle? Der Hauptgrund war ein Unterschied bei den Netzwerkkarten. WĂ€hrend der Zotac Barebone auf zwei passive Realtek Karten setzt, sind beim Shuttle zwei mehr oder weniger aktive Intel NICs verbaut. Die aktiven Karten sollten zu deutlich geringerer CPU Auslastung unter Last fĂŒhren. Ein weiterer Bonus beim Shuttle ist eine Intel CPU der aktuellen Broadwell Architektur. Entgegen erster Informationen bietet die CPU kein AES-NI und damit keine Beschleunigung bei OpenVPN. Umso wichtiger, dass die aktiven NICs den Prozessor entlasten. Bei 250 MBit Downstream, Proxy, URL Filter etc. ist man um jedes StĂŒck Performance dankbar. Apropos Performance, hier die Testergebnisse. Hauptaugenmerk war natĂŒrlich die Netzwerkperformance. Alles gemessen mit angepassten iperf Parametern. Vorab aber noch das Netzschema:

network

iperf Client und Server sind Intel Quadcore mit Intel bzw. Broadcom Netzwerkkarten. Der OpenVPN Client ist ebenfalls ein Quadcore mit Broadcom Client. Alle Tests wurden im lokalen Netz gemacht. Als Switch diente ein Gigabit Modell.

Erster Test. iperf Client zu iperf Server. Wie man den Parametern entnehmen kann, habe ich auf eine große TCP Windowsize gesetzt und zwei parallele Threads gestartet:

F:\iperf>iperf -c 192.168.0.200 -w 256k -l 256k -P2
————————————————————
Client connecting to 192.168.0.200, TCP port 5001
TCP window size: 256 KByte
————————————————————
[ 4] local 192.168.1.1 port 52004 connected with 192.168.0.200 port 5001
[ 3] local 192.168.1.1 port 52003 connected with 192.168.0.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 562 MBytes 471 Mbits/sec
[ 3] 0.0-10.0 sec 562 MBytes 471 Mbits/sec
[SUM] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec

Die bwm-ng Anzeige unter IPFire:

bmw-ng-1

htop auf IPFire wĂ€hrend der Übertragung:
htop-1

Zweiter Test. Diesmal mit kleiner Window Size:

F:\iperf>iperf -c 192.168.0.200 -w 64k -l 64k -P2 -t 60
————————————————————
Client connecting to 192.168.0.200, TCP port 5001
TCP window size: 64.0 KByte
————————————————————
[ 4] local 192.168.1.1 port 52019 connected with 192.168.0.200 port 5001
[ 3] local 192.168.1.1 port 52018 connected with 192.168.0.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-60.0 sec 3.28 GBytes 469 Mbits/sec
[ 3] 0.0-60.0 sec 3.28 GBytes 469 Mbits/sec
[SUM] 0.0-60.0 sec 6.56 GBytes 939 Mbits/sec

bwm-ng:

bmw-ng-2

htop:

htop-2

Der Stromverbrauch lag wÀhrend dieser Tests bei 10.5 Watt im Leerlauf und 13.2 Watt unter Last.

Dritter Test. Download ISO Image aus dem Internet. Proxy und URL Filter (Ads, Adv) aktiv. Limitierung durch die max. verfĂŒgbare Internetbandbreite.

bwm-ng:

bmw-ng-3

htop:

htop-3

Vierter Test. OpenVPN Tunnel gegen externes IPFire Interface.

F:\iperf>iperf -c 192.168.1.200 -w 256k -l 256k -P2 -t 60
————————————————————
Client connecting to 192.168.1.200, TCP port 5001
TCP window size: 256 KByte
————————————————————
[ 4] local 10.41.21.6 port 54484 connected with 192.168.1.200 port 5001
[ 3] local 10.41.21.6 port 54483 connected with 192.168.1.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-60.1 sec 270 MBytes 37.7 Mbits/sec
[ 3] 0.0-60.1 sec 384 MBytes 53.7 Mbits/sec
[SUM] 0.0-60.1 sec 654 MBytes 91.3 Mbits/sec

bwm-ng:

bmw-ng-4

htop:

htop-4

Das Ganze nochmal mit kleiner TCP Window Size und nur einem Thread:

F:\iperf>iperf -c 192.168.1.200 -t 60
————————————————————
Client connecting to 192.168.1.200, TCP port 5001
TCP window size: 63.0 KByte (default)
————————————————————
[ 3] local 10.41.21.6 port 54489 connected with 192.168.1.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.0 sec 681 MBytes 95.2 Mbits/sec

Und nochmal mit großer Window Size und einem Thread:

F:\iperf>iperf -c 192.168.1.200 -w 256k -l 256k -t 60
————————————————————
Client connecting to 192.168.1.200, TCP port 5001
TCP window size: 256 KByte
————————————————————
[ 3] local 10.41.21.6 port 54497 connected with 192.168.1.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.1 sec 648 MBytes 90.6 Mbits/sec

Die CPU Last variierte in beiden FĂ€llen nicht nennenswert. Es wurden keine speziellen Anpassungen der Konfiguration vorgenommen.

*Update*

FĂŒnfter Test. Download ISO Image aus dem Internet. Proxy und URL Filter (Ads, Adv) aktiv. Limitierung durch die max. verfĂŒgbare Internetbandbreite. Snort auf Rot aktiv.

bwm-ng:

bwm-ng-5

htop:

htop-5

Snort Settings:

Emergingthreats.net Community Rules:

community.rules
emerging-attack_response.rules
emerging-exploit.rules
emerging-malware.rules
emerging-mobile_malware.rules
emerging-trojan.rules
emerging-worm.rules