Wechselrichter auslesen
In der nächsten Zeit widmen wir uns den „Ereuerbaren Energien“. Als erstes geht es darum, die Daten eines Wechselrichters mittels PHP verarbeiten zu können. Zugriff haben wir hier auf einen „SUNNY BOY“ der Firma SMA. Dieser ist mit einem zusätzlichen Bluetooth-Modul „Piggy-Pack“ ausgerüstet. Als „Datenserver“ setzten wir auf ein kleines Netbook.
Als erstes benötigen wir Software, um auf den Wechselrichter zugreifen zu können. Hier bedienen wir uns der von SMA zur Verfügung gestellen Software „Sunny Explorer„. Mit dieser ist es möglich, mittels GUI sowie im Batch auf die Daten zugreifen zu können. Weiterhin benötigen wir einen PHP-Interpreter. Hier nutzen wir, der Einfachheit halber, das XAMPP-Paket.
In diesem Beispiel geben wir eine CSV-Datei aus, die die erzeugte Leistung in 5 Minuten Schritten, des aktuellen Tages enthält. Andere Optionen für die AUsgabe erhält man, wenn der „Sunny Explorer“ mit dem Startparameter „/?“ aufgerufen wird.
Step 1: Installieren XAMPP.
Step 2: Installieren „Sunny Explorer“.
Step 3: Anlegen eines Projektes im „Sunny Explorer“, wie in der Softwareanleitung beschrieben.
Step 4: Hier nun unser PHP-Code:
$pvName = 'MyPV'; // Name der Anlage
$pvUserlevel = 'user'; // User zum Anlagenlogin
$pvPassword = '0000'; // Password f¸r den Anlagenlogin
$path2SunnyExe = 'C:ProgrammeSMASunny Explorer'; // Pfad zur SunnyExplorer.exe
$path2SunnyConfig = 'C:Dokumente und EinstellungenSyslordsEigene DateienSMASunny Explorer'; // Pfad zum Anlagenconfig
$exportDate = date(‚Ymd‘); // Setzen Tagesdatum für den Export
$actDir = getcwd(); // Aktuelles Verzeichnis feststellen
/*
* Sunny Explorer im Batch aufrufen
*/
$systemExe = ‚“‚ . $path2SunnyExe . ‚\SunnyExplorer.exe“ ‚ .
‚“‚ . $path2SunnyConfig . ‚\‘ . $pvName . ‚.sx2″ ‚ .
‚-userlevel ‚ . $pvUserlevel . ‚ ‚ .
‚-password ‚ . $pvPassword . ‚ ‚ .
‚-exportdir ‚ . $actDir . ‚\ ‚ .
‚-exportrange ‚ . $exportDate . ‚-‚ . $exportDate . ‚ ‚ .
‚-export energy5min‘;
exec ($systemExe);
$pvFile = fopen($actDir . ‚\‘ . $pvName . ‚-‚ . $exportDate . ‚.csv‘,“r“) or die(„Unable to open file!“);
$lineNumber = 0;
while(!feof($pvFile)) {
$line = fgets($pvFile);
$lineNumber++;
/*
* In den Zeilen 1 bis 9 findet Ihr Informationen über
* – die Exportkonfiguration
* – den Wechselrichter
* – den Aufbau der CSV-Zeilen
* – den Dateninhalt
*/
if($lineNumber > 9) {
$dataArray = explode(‚;‘,$line);
/*
* Hier kommt Euer Code, was immer Ihr mit den Daten anfangen wollt
*/
}
}
Neue Kommentare