Endlich – SMA – Wechselrichter auslesen ohne Windows

Update 4.6.2015

  • SMA-Spot heißt nun SBFSpot. Die Projektseite ist hier.
  • Text auf SFBSpot aktualisiert

Heute habe ich die Überwachung unserer PV-Anlage erneuert. Bislang lief das ganze mit einem Windows Rechner (siehe diesen Blog Eintrag) – leider blieb die Windows-Box alle paar Tage hängen. Schon lange wollte ich was anderes und war drauf und dran, einen Home-Manger zu kaufen.

Beim erneuten herumsuchen habe ich das gefunden: SFBspot. Also sofort einen raspberry pi bestellt. Seit heute läuft das Teil produktiv.

@Luc, if you ever read this. Thanks so much for sbf-spot!!!

Ich poste hier eine kurze Anleitung, was ich gemacht habe:

1. Installation des Pi und SMASpot

Das ist hervorragend beschrieben in der Anleitung von Snowmiss (da diese ab und zu aus dem Internet verschwindet, stelle ich sie hier wieder zum Download als PDF)  SBFspot install on a Raspberry Pi V0.5

Ich verwende SMAspot 2.0.6. Update: SFBspot 3.0.1

2. Verzeichnisse auf Pi

Ich habe das mit dem User pi eingerichtet und folgende Verzeichnisse angelegt:

/home/pi/smaspot: Dort mache ich die installation von SMAspot wie unter 1 beschrieben

/home/pi/pv-logger: Dort liegen alle Dateien, die ich für meine Installation brauche:

  • SMAspot.cfg

Die Konfigurationsdatei für SMAspot wie unter 1. beschrieben

  • anlage1-cronjob.sh, da shell script das nun alle 15 Minuten läuft

3. Der Cronjob

#!/bin/bash -x
DATADIR=/tmp/smadata
DAYS=2
MONTHS=1
# ggf. anpassen
SMASPOT=/home/pi/pv-logger/SBFspot
SMASPOTCFG=/home/pi/pv-logger/SBFspot.cfg
REMOTEHOST={your host here} 
REMOTEUSER={remote username here}
REMOTEPASSWORD={remote password here}
CONVERTERURL={converterurl here}
# clean DATADIR
rm -rf $DATADIR
mkdir -p $DATADIR
# collect the data
$SMASPOT -cfg$SMASPOTCFG -ad$DAYS -am$MONTHS -nosql -finq
# upload to server
pushd $DATADIR
rm -rf *-Spot-*.csv
# -i dont confirm
# -n disable autologin
ftp -i -n $REMOTEHOST << End-Of-Session
user $REMOTEUSER $REMOTEPASSWORD
binary
mput "*.csv"
bye
End-Of-Session
# invoke the converter
wget $CONVERTERURL -O -
popd
 

mein crontab – Eintrag ist:

*/15 6-23 * * * /home/pi/pv-logger/cronjob-anlage1.sh 2>&1 > /tmp/cronjob-anlage1.log

4. Besonderheiten

Die einzige Besonderheit bei dieser Installation ist, dass alle erzeugten daten in /tmp angelegt wird. Das ist eine RAM-Disk. Damit wird die Lebensdauer des Speicherkarte nicht belastet. Damit kann ich auch ein Log schreiben, damit ich den letzten Lauf einsehen kann.

Die erzeugten Dateien sind wie bei SunnyExplorer, so dass ich auf meiner Website nichts ändern musste.

Kommentar von Klaus am 19.6.2013

Hallo

Wenn ich Dein Skript richtig verstehe, löschst Du die Spot-Dateien vor dem FTP-Upload? Ist das korrekt?

Ich versuche Dein Skript gerade nachzubauen, mit folgenden Modifikationen:
* Abfrage Daten alle 5 min
* Löschung aller Dateien im /tmp/smadata erst am Abend
* Sicherungskopie der csV-Dateien jede Stunde per ftp

Gruß
Klaus

Kommentar von bwl21 am 7.7.2013

Hallo Klaus,

sorry, dass ich erst jetzt deinen Kommentar sehe (Urlaub …).

Ich wollte meinen Webserver nicht überlasten drum frage ich alle 15 Minuten ab. Das geschieht aber im cron-Job.

Ich lösche die alten Daten vor dem neuen Auslesen. Falls das Auslesen probleme macht, werden die alten Daten nicht übertragen.

Die Sicherungskopie ist nicht notwendig, da ich ja die CSV-Files auf meinen Webserver spiele und dort nach SolarLog konvertiere.

Von daher könntest du das Originale Script verwenden.

liebe Grüße, Bernhard

Kommentar von Werner am 8.11.2013

Kann man hier auch weitere FTP-Server angeben, wie bei dem Script von Albrecht Reiber?

Schönes Wochenende,
Werner

Kommentar von bwl21 am 8.11.2013

Hallo Werner,

du kannst ja den cronjob verändern und die folgenden Zeilen für jeden FTP – Server angeben, den du bedienen willst.

# -i dont confirm
# -n disable autologin
ftp -i -n $REMOTEHOST < user $REMOTEUSER $REMOTEPASSWORD binary mput "*.csv" bye End-Of-Session liebe Grüße, Bernhard

Kommentar von Werner am 24.11.2013

Hallo Bernhard,

funktioniert soweit alles gut. Allerdings bekomme ich bei PV-Log die Daten nicht angezeigt. Der einzige Unterschied zu der Windows Batch Datei ist:

Raspberry: dd.MM.yyyy HH:mm:SS
Windows: dd.MM.yyyy HH:mm:ss

Raspberry: Total yield;Power
Windows: Gesamtertrag;Leistung

Wenn ich das von Hand abändere zeigt Pv-Log meine Daten an.

Hast du ne Lösung, wie ich das ändern könnte?

Viele Grüße,
Werner

Kommentar von bwl21 am 24.11.2013

ich meine du kannst das im cfg file einstellen oder in DEC c-quellen. Muss ich mir mal anschauen…

Kommentar von Peter aus Calw am 5.1.2014

Hallo guten Abend,
bin halt als grüner Alter (68) aus dem Nordschwarzwald mit dem PI am gange.
Versuche verzweifelt trotz guter Beschreibung meinen neuen SMA 6000 WR mit dem PI bekannt zu machen.
Bis zum Testlauf mit cronjob-anlage1.sh bin ich schon gekommen – die Einstellung von FTP will nicht gelingen also folgender Fehler wird angezeigt :
pi@raspberrypi ~/pv-logger $ ./cronjob-anlage1.sh
/tmp/smadata ~/pv-logger
./cronjob-anlage1.sh: Zeile 34: FTP:\NSPhpabele admin: Datei oder Verzeichnis ni
cht gefunden
./cronjob-anlage1.sh: Zeile 35: binary: Kommando nicht gefunden.
~/pv-logger
pi@raspberrypi ~/pv-logger $
in der Cronjob steht :
ftp -i -n 192.168.2.110 < FTP:\\NSP\hpabele\ admin tamara
binary imput "*.csv"
#bye End-Of-Session
Über Hilfe würde ich mich sehr freuen !
Beste Grüße und ein gutes neues Jahr wünscht Peter Abele

Kommentar von bwl21 am 5.1.2014

Hallo Peter,

deine FTP-Zeile ist auch komisch. Ich erkläre noch etwas detaillierter, wie das geht.

M.e müsste der teil so aussehen.

# -i dont confirm
# -n disable autologin
ftp -i -n 1902.168.2.110  < <End-Of-Session
#                         !  !
#                         !  Stdin geht bis zum String "End-Of-Session
#                         !
#                         wichtig: ftp liest seine Befehle von stdin
user FTP:\\NSP\hhpabele\admin tamara
binary
mput  "*.csv"
bye
End-Of-Session


Hoffe, das hilft.

Bernhard

Kommentar von HoRu am 7.10.2014

Hallo zusammen,

bin gerade über diesen Thread gestolpert. Ich habe einen Kostal und überwachen den seit Ende 2012 mit SolarView – zunächst auf einer Fritz!Box, anschließend auf einem RasPi.
SolarView unterstützt einige Wechselrichter, bietet FTP-Upload und im Fehlerfall oder am Tagesende eine eMail-Benachrichtigung. Ist allerdings keine Freeware.

Hier der Link zu SolarView:
http://www.solarview.info/solarlogger.aspx

Hier ein Link zu meinem SolarView:
http://netteblick.bandweite.de:8080/index.html

Hier ein Link zu PV-Log, zu dem die Daten per FTP hochgeladen werden:
http://www.pv-log.com/photovoltaikanlage-pv-netteblick

Es gibt auch eine Windows-Variante, mit der man statt des RasPI den logger abfragen kann, oder die daten vom RasPI oder der Fritz!Box abholen und bequem auswerten kann. Ist aber im 1. Link beschrieben.

Gruß HoRu

Kommentar von Stefan Meier am 3.6.2015

Hallo,
ich wollte auch meinen Raspberry Pi als Datenlogger verwenden. Ich habe sowohl SMA Wechselrichter aber auch Solarmax.
Die Anleitung von snowmiss (pdf) kann ich nicht öffnen.
Kannst Du mir die schicken??

Gruß
Stefan

Kommentar von bwl21 am 4.6.2015

Hallo Stefan,

Ich habe meinen Beitrag aktualisiert und auch die Anleitung von Snowmiss auf meinen Server gestellt. Dort kannst du sie nun runterladen.

vg B.

Kommentar von Ralf am 20.11.2017

Hallo Bernhard,

de Raspberry habe ich soweit am laufen. Die Daten werden jetzt erstmal per crontab auf den Raspberry geladen.

Anschließend möchte ich die Daten auch noch auf einen FTP-Server laden.

Wenn ich dass richtig verstehe machst du das in deiner Cronjob-Datei.
Du lädst die Daten vom Wechselrichter in einen temporären Ordner und lädst sie dann auf einen FTP-Server. Auf dem Raspberry werden die WR-Daten nicht gespeichert.

Was mir allerdings nicht klar ist, was ist mit „CONVERTERURL“ gemeint?

Gruß
Ralf

Kommentar von bwl21 am 20.11.2017

Hallo Ralf,

das ganze funktioniert so dass nach dem upload auf meinem Webserver noch ein Konverterscript läuft. dieses wird über die CONVERTERURL aufgerufen.

Wenn du das nicht brauchst, dann kommentiere den aufruf einfach raus.

Wenn du es brauchst, muss ich erst mit dem Autor Rücksprache halten, ob er es weiterentwickelt und einen offiziellen Distributionskanal hat.

Hoffe, das hilft

Bernhard

Neuer Kommentar

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.