Hallo Zusammen,
nachdem mir das IPS- Team so großartig weitergeholfen hat, möchte ich „mein Wissen“ bezüglich der Einbindung eines Fronius- Wechselrichters weitergeben.
Ihr benötigt: einen oder mehrere Fronius- Wechselrichter mit mit einer Datamanager- Karte
http://www.fronius.com/cps/rde/xchg/SID-398C2ED7-69D33E6F/fronius_international/hs.xsl/83_28105_DEU_HTML.htm
Die Einbindung ist via WLAN und LAN möglich.
Wenn Ihr den WR mit
http://192.168.178.181/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData
abfragt, habt ihr die folgende Anzeige
{
"Head" : {
"RequestArguments" : {
"DataCollection" : "CommonInverterData",
"DeviceClass" : "Inverter",
"DeviceId" : "1",
"Scope" : "Device"
},
"Status" : {
"Code" : 0,
"Reason" : "",
"UserMessage" : ""
},
"Timestamp" : "2014-01-07T09:03:22+01:00"
},
"Body" : {
"Data" : {
"DAY_ENERGY" : {
"Value" : 240,
"Unit" : "Wh"
},
"FAC" : {
"Value" : 49.96,
"Unit" : "Hz"
},
"IAC" : {
"Value" : 4.39,
"Unit" : "A"
},
"IDC" : {
"Value" : 3.63,
"Unit" : "A"
},
"PAC" : {
"Value" : 1039,
"Unit" : "W"
},
"TOTAL_ENERGY" : {
"Value" : 143212,
"Unit" : "Wh"
},
"UAC" : {
"Value" : 230,
"Unit" : "V"
},
"UDC" : {
"Value" : 298.2,
"Unit" : "V"
},
"YEAR_ENERGY" : {
"Value" : 15994,
"Unit" : "Wh"
},
"DeviceStatus" : {
"StatusCode" : 7,
"MgmtTimerRemainingTime" : -1,
"ErrorCode" : 0,
"LEDColor" : 2,
"LEDState" : 0,
"StateToReset" : false
}
}
}
}
Wenn das klappt, dann legt euch fünf Variablen an (Float)
Day Energy
Total Energy
Year Energy
AC Frequency
Power
Wenn ihr mehr abfragen möchtet, dann müsst ihr es entsprechend ergänzen.
Und nun noch folgendes Skript:
$content = file_get_contents("http://192.168.178.181/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceID=1&DataCollection=CommonInverterData"); // Dies ist die Abfrage. Zu ändern ist die IP und die DeviceID entsprechend eurer Geräte
if ($content === False){
echo "Nicht erreichbar";
$pac = 0;
$fac = 0;
SetValue(57819 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac);
SetValue(16194 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
return;
// Dies ist die Kontrolle, ob der Wechselrichter erreichbar ist. Wenn nein, dann habe ich Power und Frequency auf null gesetzt, da ich manchmal "Restwerte" von 1 hatte (letzte erreichbare Abfrage war 1W) Die hätte er sonst bis zur nächsten Erreichbarkeit angezeigt.
}
$json = json_decode($content);
//Dies ist die eigentliche Wertabfrage und Zuweisung zu den vorne stehenden Variablen
//Ihr könnt es mit den Werten ergänzen die Ihr wollt
$day = $json->Body->Data->DAY_ENERGY->Value;
$total = $json->Body->Data->TOTAL_ENERGY->Value;
$year = $json->Body->Data->YEAR_ENERGY->Value;
$fac = $json->Body->Data->FAC->Value;
$pac = $json->Body->Data->PAC->Value;
$day = $day / 1000; // Umrechnung Watt in Kilowatt
$total = $total / 1000;
$year = $year / 1000;
// Variablenzuweisung mit euren Variablen ändern
SetValue(23340 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Day Energy]*/,$day);
SetValue(28828 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Total Energy]*/,$total);
SetValue(44925 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Year Energy]*/,$year);
SetValue(16194 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo AC Frequency]*/,$fac);
SetValue(57819 /*[Energie\PVAnlage\FRONIUS\Fronius SYMO\Symo Power]*/,$pac);
?>
Dann weist ihr dem Skript noch ein zyklisches Ereignis zu (Häufigkeit nach eurem Gusto, ich frage nach je einer Minute ab).
Dann sollte es laufen.
Für einen zweiten oder dritten oder… einfach neue Variablen anlegen, ein neues Skript anlegen und dann einfach die IP und die DeviceID ändern.
Alle Werte die man abfragen kann findet ihr in den Dokumentationen unter:
http://www.fronius.com/cps/rde/xchg/SID-2658B568-FA0179D1/fronius_international/hs.xsl/83_28911_DEU_HTML.htm#
Hierfür müsst ihr euch aber anmelden.
Ich hoffe die Anleitung ist hilfreich.
Lieschen