Tools zur Datenerfassung mit dem Solarlog (Solare Datensysteme GmbH)

Der Solarlog ist ein Datenlogger, um die Messwerte der Photovoltaikanlage erfassen zu können. Es gibt ihn in unterschiedlichen Ausführungen, bei dieser Anlage wird ein Solarlog 400e eingesetzt. Um die vom Solarlog zur Verfügung gestellten Daten universeller nutzen zu können, stelle ich hier einige Skripte zur Verfügung, um die vom Solarlog erzeugten Backupdateien in eine SQL-Datenbank zu transferieren.

Zuordnung der Daten in der Backupdatei des Solarlog 100e, 400e, 800e

Die tatsächlich gelieferten Messwerte hängen vom Wechselrichtertyp ab, es werden also nicht unbedingt alle Messkanäle auch Werte enthalten.

Messkanal Messwert Einheit
0 Abgabeleistung des Wechselrichters Pac [W]
1 Abgabeleistung des 1. Strings P1 [W]
2 Abgabeleistung des 2. Strings P2 [W]
3 Abgabeleistung des 3. Strings P3 [W]
4 Kumulierter Tagesertrag [kWh]
5 Statuscode (abhängig vom Wechselrichter)  
6 Fehler (abhängig vom Wechselrichter)  
7 Betriebsstrom des Wechselrichters Ipv [mA]
8 Betriebsspannung des Wechselrichters Upv [V]
9 Gesamtertrag [Wh]
10 Unused  
11 Temperatur des Wechselrichters [°C]
12 Stringspannung des 1. Strings Udc1 [V]
13 Stringspannung des 2. Strings Udc2 [V]
14 Stringspannung des 3. Strings Udc3 [V]
15 Ausgangsspannung des Wechselrichters Uac [V]
16 Einstrahlung (Sensorbox) [W/m²]
17 Modultemperatur (Sensorbox) [°C]
18 Umgebungstemperatur (Sensorbox) [°C]
19 Windgeschwindigkeit (Sensorbox) [m/s]

SQL Datenbank

Grundsätzlich kann zur Speicherung der Daten jede relationale Datenbank verwendet werden. Da die Messwerte in diesem Fall auf der Website visualisert werden sollen, kommt hier eine mySQL-Datenbank zum Einsatz.

Die Datenbank kann mehrere Anlagen und Wechselrichter verwalten (Linksklick zur Anzeige im Browser, Rechtsklick zum Download).

SQL-Datei zur Erzeugung der Datenbanktabellen ohne Inhalte

SQL-Datei zur Erzeugung der Datenbanktabellen mit Beispieldaten

PHP Skript für den Datenimport

Für den Datenimport der Messwerte in die Datenbank wird die serverseitige Skriptsprache PHP eingesetzt. Viele Webhosting-Provider bieten mittlerweile diese LAMP genannte Kombination an. Das Skript besteht aus zwei Teilen, dem Verbindungsaufbau zur Datenbank und dem eigentlichen Datenimport.

Das Skript importiert auschliesslich die Tagesmesswerte, da sowohl die Monats- und Jahreswerte  als auch alle anderen Werte jederzeit über die Datenbank ermittelt und berechnet werden können und die zusätzliche Speicherung dieser Daten überflüssig und redundant wäre. Für den Import der Ereignisse wird ein zusätzliches Skript benötigt, dass noch nicht für mehrere Wechselrichter geeignet ist, da mir hierzu noch kein Datenaufbau vorliegt und die Ereignisse zumindest beim Solarlog 100e nicht in der Backup-Datei sondern nur die letzten 400 Werte in der events.js enthalten sind (für einen Wechselrichter kann ich es auf Wunsch bereits zur Verfügung stellen).

Verbindungsskript

Importskript

Hier noch ein paar Hinweise zum Umgang mit den Skripten. Der Import ist bewusst auf zwei Skripten aufgeteilt (es wäre auch mit einem Skript möglich), da die Zugangsdaten zur Datenbank möglichst außerhalb der Website, zumindest aber in einem getrennten und geschützten Verzeichnis liegen sollten. Das Skript enthält nur rudimentäre Fehlerprüfungen, geht also davon aus, dass es richtig implementiert ist. Um die Datenbank automatisch und regelmäßig mit den neuesten Daten zu versorgen, kann das Importskript entweder per Cronjob gestartet werden (die Möglichkeit bieten viele Provider allerdings nicht) oder aber als include() z.B. in die Startseite eingebunden werden.