Hallo liebe Leserinnen und Leser!

Heute möchte ich euch zeigen, wie ihr die PV-Ertragsdaten von einem SMA-Bluetooth-Wechselrichter mit Hilfe eines Raspberry Pi und eines geeigneten Bluetooth-Sticks auslesen könnt und diese auf einem Webinterface mit Highcharts darstellen könnt. Das Webinterface habe ich selbst gestaltet, weswegen kleinere Bugs noch enthalten sein könnten. Ihr findet den Downloadlink im Laufe dieses Artikels.

Die Anleitung ist für Raspberry-Pi-Einsteiger genau so geeignet, wie für erfahrenere Raspberry-Pi-Nutzer. Ich versuche sie also möglichst detailliert zu halten. Um eigene Änderungen am Webinterface vornehmen zu können, solltet ihr allerdings grundlegende Kenntnisse in HTML, JavaScript und jQuery besitzen. Auf PHP wurde explizit verzichtet, sodass sämtliche Berechnungen Client-seitig geschehen. Dadurch wird der Raspberry Pi beim Aufruf kaum belastet und die Rechenarbeit übernehmen die meist deutlich potenteren Clients.

Benötigte Hardware

Was ihr hierfür benötigt:

  1. Einen Bluetooth-Stick (bei Wechselrichtern mit Bluetooth
    Hierbei solltet ihr beim Kauf darauf achten, dass der Chipsatz vom Raspberry Pi erkannt wird und/oder es passende Treiber zum Download gibt. Ich selbst nutze einen LogiLink BT0015, der automatisch von Raspbian erkannt wird. Zudem handelt es sich um einen Adapter der Bluetooth-Klasse 1, mit dem theoretisch 100m Reichweite erzielt werden können. In meinem Haus habe ich damit eine ordentliche Verbindung vom Wechselrichter im Keller zum Raspberry Pi im ersten Stock (60-70% Empfangsstärke werden angezeigt). Zudem ist der Stick mit 5-10€ recht preiswert.
  2. Einen SMA-Wechselrichter (mit Bluetooth oder Ethernet)
    Da das Tutorial auf SMAspot (bzw. SBFspot, wie es seit einigen Versionen heißt) basiert, benötigt ihr einen SMA-Wechselrichter mit Bluetooth oder Ethernet. Ich selbst habe einen SMA STP 8000TL-10 im Einsatz, welcher Bluetooth an Board hat. Hier findet ihr eine Liste der unterstützten Wechselrichter zur jeweiligen Version von SMAspot. Solltet ihr Probleme mit euren Wechselrichter haben, so wendet euch an die Entwickler von SBFspot bzw. bei Problemen mit meinem Webinterface direkt an mich. Sollten die Unterschiede nur marginal sein, kann ich (bzw. ihr) das Interface i.d.R. problemlos anpassen.
  3. Einen Raspberry Pi
    Grundsätzlich funktioniert auch ein anderer Linux-PC/-Server, da das Gerät aber durchgängig läuft, ist ein stromsparender Einplatinencomputer wie eben der Raspberry Pi, der Banana Pi oder ein Cubieboard (,…) empfehlenswert.

Mehr an Hardware ist gar nicht notwendig (abgesehen von „Basics“ wie ein Netzteil für den Pi, Tastatur etc.), um eure Ertragsdaten auszulesen und darstellen zu können.

Beginnen wir also mit dem Ersten Schritt.

Die Installation und Konfiguration von SMAspot

Diese ist in der PDF-Datei von SMAspot sehr genau und ausführlich installiert, sodass ich hier nur die wichtigsten Dinge zusammenfassen möchte und Unterschiede zu meiner Konfiguration erklären möchte. Wenn ihr den Raspberry Pi mit Raspbian bereits laufen habt, könnt ihr ab dem Kapitel „How to install SMAspot on the Raspberry Pi?“ beginnen.

Zuerst müsst ihr euren Bluetooth-Adapter am Raspberry zum Laufen bekommen. Dazu werden über
sudo apt-get install bluetooth
die Bluetooth-Treiber heruntergeladen und installiert. Über  hcitool scan  könnt ihr nun einen Bluetooth-Scan ausführen, bei dem u.a. euer Wechselrichter auftauchen sollte. Ist das nicht der Fall, wiederholt den scan-Befehl noch mal. Sollte der Wechselrichter auch nach mehrmaligem Scannen nicht gefunden werden, ist vermutlich der Abstand zwischen Raspberry Pi und WR zu groß. Stellt den Raspberry mit dem Bluetooth-Stick dann möglichst nahe an euren WR und probiert es nochmals. Anschließend schreibt ihr euch die Bluetooth-Adresse eures Wechselrichters auf, da ihr sie für die Konfiguration von SMAspot später benötigt.

Dann müsst ihr noch ein paar Pakete herunterladen und installieren:

Nach diesen Befehlen empfehle ich euch, die benötigten Ordner für das Webinterface direkt anzulegen. Dazu müsst ihr auf euren RPi Apache oder einen anderen Webserver installiert haben. Das geht ganz simpel über
sudo apt-get install apache2
PHP braucht ihr aus den in der Einleitung erwähnten Gründen nicht installieren. Um die benötigten Ordner anzulegen wechselt ihr zu /var/www/ über  cd /var/www/  und legt einen Ordner namens „pv“ an: sudo mkdir pv

Alternativ könnt ihr den Ordner auch anders benennen oder die folgenden Ordner auch direkt unter /var/www/ anlegen. Um das Tutorial aber genau so umsetzen zu können, empfehle ich die Beibehaltung dieser Struktur.

In diesem Ordner legt ihr nun Ordner mit den gewünschten Jahreszahlen als Namen an, also z.B. „2011“, „2012“,…, „2020“, um die Daten von 2011 bis 2020 darin speichern zu können. Das Anlegen erfolgt wieder mit dem bereits bekannten mkdir-Befehl, also sudo mkdir 2011  usw.  Damit SMAspot in diese Ordner später auch die entsprechenden .csv-Dateien ablegen kann, sollten die Rechte noch angepasst werden. Das erfolgt z.B. über sudo chmod 777 2011/  usw.

Damit sind erst einmal alle Grundlagen für die Installation von SMAspot erfüllt und es kann mit dessen Installation fortgefahren werden. Hier empfehle ich das Kapitel „Now it’s really time to install SMAspot on the Pi“ aus der oben verlinkten PDF, welches die Installationsschritte sehr gut beschreibt.

Hinweis: Der Downloadlink in der Anleitung (nach „wget“) ist veraltet, ihr solltet ihn also durch den Link zur aktuellen Version ersetzen. Ich selbst nutze noch Version 2.0.6, wie in der Anleitung angegeben, da ich das System auf meinem Raspberry schon einige Zeit problemlos am Laufen habe. Bei einer Neuinstallation empfiehlt es sich hingegen, die aktuellste Version zu verwenden. Da SMAspot mittlerweile SBFspot heißt, einfach die Namen in der Anleitung umtauschen, ansonsten sollte alles nach wie vor gleich funktionieren.

Bei der Bearbeitung der Datei „SMAspot.cfg“ (bzw. evtl. „SBFspot.cfg“) müsst ihr nun abweichend von der Anleitung vorgehen. Als „OutputPath“ gebt ihr nun „/var/www/pv/%Y“ an, damit die .csv-Dateien gleich im richtigen Ordner gespeichert werden. Zudem ändert ihr „DecimalPoint=comma“ in „DecimalPoint=point“ um und deaktiviert PVoutput, indem ihr „PVoutput=1“ zu „PVoutput=0“ ändert. Ansonsten könnt ihr analog zu dieser Anleitung vorgehen (bis „Now for the magic to happen itself“, dieses und die folgenden Kapitel könnt ihr weglassen).

Nun solltet ihr SMAspot lauffähig auf eurem Raspberry Pi haben. Ihr könnt es nun wie in der Anleitung beschrieben testweise ausführen. Hat alles funktioniert, solltet ihr nun unter „/var/www/pv/AKTUELLES_JAHR/“ eure ersten exportieren .csv-Daten vorliegen haben. Die Installtion und Konfiguration von SMAspot ist somit abgeschlossen und wir können uns dem Webinterface widmen.

Installation des Webinterfaces

Um euch zu zeigen, wie das Webinterface letztendlich aussehen sollte, habe ich euch hier mal 2 Screenshots davon gemacht, wie es bei mir momentan läuft.Webinterface TagesansichtDer erste Screenshot zeigt die Tagesansicht des aktuellen Tages, welcher standardmäßig angezeigt wird, wenn ihr das Webinterface aufruft. Das Textfeld bei „Datum wählen“ ist ein jQuery-Datepicker, mit dem ihr bequem die Tagesansichten von historischen Werten aufrufen könnt. Die Graphen wurden mit Highcharts realisiert.

Webinterface MonatsansichtDer zweite Screenshot zeigt die Monatsansicht des aktuellen Monats (es sei denn, es ist der 1. eines Monats, dann wird der Vormonat angezeigt, um eine leere Anzeige zu vermeiden) mit dem Monatsgesamtwert, den Tageswerten und dem Gesamtertrag seit Inbetriebnahme der Anlage. Das Textfeld bei „Monat wählen“ wurde wieder als Datepicker umgesetzt, in dieser Ansicht werden allerdings nur Monat und Jahr angezeigt.

Genug der Demonstration, kommen wir zur Installation:

Ladet euch zuerst das gepackte Webinterface herunter. Die Dateien aus dem gepackten Ordner kopiert ihr euch nach „/var/www/pv/“.

Das sollte es schon gewesen sein :)

Ruft nun in eurem Browser die entsprechende Seite auf, also „http://IP_EURES_RPI/pv/“. Wenn ihr alles richtig gemacht habt, wird euch nun die Tages- und Monatsansicht eures Wechselrichters angezeigt und ihr könnt mit dem nächsten und somit letzten Schritt weitermachen.

Automatisierung des Abrufs der PV-Daten

Da es umständlich ist, sich immer am Raspberry Pi einzuloggen und die PV-Daten über SMAspot manuell abzurufen, solltet ihr den Abruf automatisieren. Hier die dazu benötigten Schritte:

Legt euch im Home-Verzeichnis des Nutzers „pi“ eine Shell-Script namens „get_pv.sh“ an, also über nano /home/pi/get_pv.sh  mit folgendem Inhalt:

Hier evtl. den Pfad zu eurer SMAspot/SBFspot-Installation anpassen. Darüber hinaus brauchen wir noch 3 weitere Shell-Scripte. Analog zu oben legt ihr ein Script namens „get_pv_eod.sh“ an mit

, eines namens „get_pv_eom.sh“ mit

und eines  namens „get_pv_night.sh“ mit

Diese Scripte mit „chmod  +x SCRIPTNAME“ ausführbar machen, wobei ihr „SCRIPTNAME“ natürlich mit den Namen der 4 gerade angelegten Scripte ersetzt.

Anschließend legen wir noch entsprechende cronjobs an, um die Scripte automatisch starten zu lassen. Hierzu öffnet ihr mit „crontab -e“ den Editor für die cronjobs und legt darin folgende neue Einträge an:

Damit werden die Solarwerte während des Tages um 10, 14 und 18 Uhr abgerufen sowie um 8 und 22 Uhr (hier muss ein anderer Befehl verwendet werden, da diese Zeiten teilw. vor Sonnenaufgang bzw. nach Sonnenuntergang liegen). Außerdem wird jede Nacht um 1 Uhr die komplette .csv-Datei vom Vortag vom Wechselrichter geholt und am ersten eines Monats um 5 Uhr morgens die komplette .csv-Datei des Vormonats. Erklärungen hierzu finden sich auf unzähligen Support-Seiten von SMAspot/SBFspot. Ihr könnt natürlich auch kleinere Intervalle beim Abruf der aktuellen Werte während des Tages verwenden, wenn gewünscht.


Das wars auch schon – ab sofort sollte euer Raspberry die Ertragsdaten automatisiert vom Wechselrichter holen und ihr könnt euch diese über ein kleines Webinterface anzeigen lassen.

Bei Fragen, Anregungen, Fehlern etc. könnt ihr wie immer gerne die Kommentarfunktion des Blogs unter diesem Artikel benutzen.

Bis bald!