vielleicht hat der Eine oder die Andere von euch eine Photovoltaikanlage mit SMA-Wechselrichter. Soweit nur ein Wechselrichter vorhanden ist, kann ich in Form von 5 Skripten eine funktionsfähige Kommunikation zur Verfügung stellen.
Hardware: SMA Sunnyboy Wechselrichter mit RS232 Schnittstelle (optionales COM Piggy Pack gesteckt), 1200 baud, 8 datenbits, 1 stoppbit, keine Parität
Software: Neben IP-Symcon SMA Sunny Data zur Überprüfung der Kommunikation und Extraktion einiger Parameter. Frei zum Download unter: www.sma.de/de/solartechnik/downloads/index.html
Wen es interessiert: Man findet dort auch die Beschreibung des Kommunikationprotokolls (s. u. Kommunikationsprodukte–> Protokollbeschreibung)
Zu den Skripten:
(1) CMD_GET_NET1 --> muss zuerst ausgeführt werden, sowie im Fehlerfall:
sucht den Wechselrichter und liefert des Netzwerkadresse, Seriennummer und Bezeichnung
(2)CMD_SYN_ONLINE10 --> Sendet den augenblicklichen UNIX-Zeitstempel an Wechselrichter; dieser speichert Spot-Messwerte
(3)CMD_GET_DATA11 --> Messwerte und Parameter anfordern
(4)Ex_SMA_Data --> Auswertung der empfangen Wechselrichterdaten
Hierzu sind einige Parameter zudefinieren, die WR-Typ abhängig sind. Die Daten findet man nach Installation der Sunny Data Software im Ordner …/SMA/Sunny Data/Devices/?.DEF; ? für jeweiliges WR-Modell!
(5)Use_SMA_Data–> Beispiel wie Daten verwendet werden können
Skript sind wegen Größe geZIPt
Viel Spaß beim Ausprobieren!
Wolfgang,
vielen Dank für die Bereitstellung dieser IPS-SMA Anbindung !
Das kommt gerade passend, da ich bald mein IPS in Betrieb nehmen möchte und hier 3 SMA Wechselrichter über RS485 anschliesse.
Welchen Fehler behebt Deine Änderung?
ich kriege jetzt endlich die rs232 schnittstelle in den sunny boy. hat leider doch ewig gedauert. ich wollte gerade sunny data runterladen. das gibt es aber nur für windows 2000 und nicht für xp.
angeblich ist der „nachfolger“ sunny data control. das läuft auch unter xp und vista. wird deine lösung wohl damit auch funktionieren ?
übrigens noch kurz zum auslesen von sma-wechselrichtern:
es gibt von sma 2 verschiedene protokolle. ein altes und en neueres. das hier vorgestellte script funktioniert so nur für das alte protokoll.
ich hab lange gekämpft um das festzustellen. mein wr funktioniert mit dem neuen protokoll und daher wollte das ips script auch nicht die daten auslesen.
also ich habe eine lösung in arbeit und eine fertig und in betrieb. beim sma wr ist eine software dabei. mit der kann man die daten vom wr holen. zusätzlich kann man damit auch eine text-datei mit den werten schreiben (jede minute). und die lese ich dann mit ips aus. klappt wunderbar.
ist halt nur leider keine direkte abfrage und ein extra stück software muss auf dem server laufen. dher versuche ich noch eine dll zum laufen zu bringen mit der man über php direkt den wr anfragen kann.
meine PV ist seit vergangenen Wochenende in Betrieb.
Habe 2 WR von SMA am laufen die mit RS485 ausgestattet sind. Kabel sind gelegt, es fehlt nur noch die Schnittstelle für den PC die ich als Ethernet/RS485 Version bestellt habe und die Tage kommen müsste. Das verbinden mit IPS sollte Dank Socket-Clients kein Problem werden, falls doch liegt dem Paket noch eine virtuelle COM-Schnittstelle bei.
also ich habe eine lösung in arbeit und eine fertig und in betrieb. beim sma wr ist eine software dabei. mit der kann man die daten vom wr holen. zusätzlich kann man damit auch eine text-datei mit den werten schreiben (jede minute). und die lese ich dann mit ips aus. klappt wunderbar.
Eine weitere Software auf dem Server stellt kein Problem dar, ist eh schon viel genug drauf
Kannst Du mir einmal die funktionierende Version der Skripte zum auslesen der Logfiles von Sunny Data Control zukommen lassen oder besser hier veröffentlich?
ist halt nur leider keine direkte abfrage und ein extra stück software muss auf dem server laufen. dher versuche ich noch eine dll zum laufen zu bringen mit der man über php direkt den wr anfragen kann.
Falls Du mit der reinen IPS-Version weitergekommen bist würde mich diese natürlich auch interessieren.
das auslesen mit der dll habe ich leider noch nicht. aber das andere klappt halt und da ist der druck nicht so gross
hier ist mal mein script was ich verwende. in der software sunny data control software muss dann angewählt sein, dass die datenübergabedatei geschrieben wird.
<?
// gesamte Datei in einen String einlesen
$file = file_get_contents('C:\Programme\SMA\Sunny Data Control\Online\Online00.txt');?
// String in Zeilen zerlegen und in ein Array schreiben
$lines = explode("
", $file);
// letzte Zeile extrahieren
$lastentry = $lines[count($lines)-2];
// Daten in ein Array schreiben
$data = explode(";", $lastentry);
SetValueFloat('SMA-Total',doubleval(str_replace(',','.',trim(substr($data[32],0)))));
SetValueFloat('SMA-Pac',doubleval(str_replace(',','.',trim(substr($data[20],0)))));
SetValueFloat('SMA_Pac',doubleval(str_replace(',','.',trim(substr($data[20],0)))));
$gesamt = GetValueFloat('SMA-Total');
$vortag = GetValueFloat('SMA-Tagesertrag-Vortag');
if($gesamt == 0)
{
//
}
else
{
$tag = $gesamt - $vortag;
SetValueFloat('SMA-Tagesertrag',$tag);
SetValueFloat('SMA_Tagesertrag',$tag);
SetValueFloat('SMA-E-Total',doubleval(str_replace(',','.',trim(substr($data[32],0)))));
}
$co2tag = GetValueFloat("SMA_Tagesertrag");
$co2total = GetValueFloat("SMA-E-Total");
$co2tag = ($co2tag * 700) / 1000;
$co2total = ($co2total * 700) / 1000;
SetValueFloat('sma_co2_tag', $co2tag);
SetValueFloat('sma_co2_total', $co2total);
//PV On oder Off
$onoff = GetValueFloat("SMA-Pac");
if ($onoff > 0) {
SetValueBoolean("SMA_on_off", true);
}
else {
SetValueBoolean("SMA_on_off", false);
}
//Ertrag in Euro ausrechnen
$schotter = (GetValueFloat("SMA-E-Total") * 0.4921);
SetValueFloat("SMA_Gesamtertrag", $schotter);
echo $schotter;
?>
Da sag ich mal einen riesen Dank für das Skript, jetzt fehlt nur noch die Schnittstelle, obwohl, ich könnte schon mal die BT-Schnittstelle des grossen WR nutzen.
unten am script ist noch ein wenig schnickschnack den ich um designer anzeige wie co2 einsparung oder ertrag in geld. das eigentliche auslesen ist der obere teil.
korrigiere aber bei Deinem Script dann unbedingt die Schotter Variante, sie ist ja nur 0,4675 in Deinem Fall.
Danke für den Hinweis:rolleyes:, hatte ich schon gesehen. Da war hmpf99 schneller mit dem Aufbau der PV
Die Uhrzeit / Datum ist uebrigens auch in der Software einzustellen, das nur nebenbei.
Kannst Du mir verraten wo. Habe in SunnyDataControl V4.0 nichts gefunden. Das Einzige was ich ändern kann und darf ist die Bezeichnung der Anlage, alles andere ist gesperrt und nur durch ein Installateur-Kennwort zu erreichen.
nach dem ich nun meine 2. RS485 Schnittstelle habe, die erste wollte einfach nicht mit meinen SMA-WR, habe ich das Skript am Anfang des Threads auch durchgetestet mit dem gleichen Ergebnis wie Du, es will mit den neuen WR nicht mehr. Wirklich schade.
Jetzt werde ich mich morgen mal dran machen mit deinem Skript sowie die SMA-Software eine funktionierende Version ans laufen zu bekommen. Melde dann evtl. Erfolge und auch Mißerfolge :rolleyes: