So, hier jetzt die aktuelle Version des Scriptes. Sie unterstützt das Sofortladen, das Awattar-Laden und das Laden mit Solarüberschuss.
Die Auswahl trifft man mit der Zugangskontrolle: Sofortladen ist die 0, Solarladen die 1 und Awattar-Laden die 3.
Das Variablenprofil habe ich entsprechend angepasst und in Ladeart umbenannt.
Es gibt noch zwei Events, eines bei Änderung der Ladeart (Zugangskontrolle) und einen 15 s Timer, der im Script beim Solarladen aktiviert wird.
Das Solarladen hat eine Hysterese, damit nicht jeder winzige Sonnenstrahl zum Einschalten führt: Erst bei verfügbaren 10 A ein und bei unter 6 A aus.
Er sollte sowohl 3-phasig, als auch 1-phasig funktionieren. Das Umschalten werde ich an der Sicherung vornehmen müssen, der Go-e kann es ja nicht selbst.
<?php
$Ladeart=GetValueInteger(49732);
if($Ladeart==1)
{
$aktuelleSolarLeistung=intval(GetValueFloat(46019))*(-1);
$aktuelleSpannung=intval(GetValueFloat(44781));
$aktuellerLadestrom=intval(GOeCharger_GetCurrentChargingAmperage( 52269));
$Ladestatus=GOeCharger_GetStatus( 52269 );
$Ladenaktiv=GOeCharger_IsActive( 52269 );
$Phasen=GetValueInteger(24425);
$SollLadeStrom=0;
Print("Solarladen ein");
//Bei einphasigem Laden geht es bei 1400 W los
//Bei 3 phasigem Laden beginnt es bei 4140 W
if($Ladestatus==2 && $Ladenaktiv)
{
$SollLadeStrom = ($aktuellerLadestrom * $Phasen) + ($aktuelleSolarLeistung / $aktuelleSpannung);
}
else
{
$SollLadeStrom=$aktuelleSolarLeistung / $aktuelleSpannung;
}
$SollLadeStrom=intval(round($SollLadeStrom * $Phasen));
if($SollLadeStrom >= 6 && $Ladenaktiv )
{
GOeCharger_SetCurrentChargingAmperage( 52269, $SollLadeStrom);
GOeCharger_SetActive( 52269, true );
IPS_SetEventActive(12058, true);
}
elseif($SollLadeStrom >= 10 )
{
GOeCharger_SetCurrentChargingAmperage( 52269, $SollLadeStrom);
GOeCharger_SetActive( 52269, true );
IPS_SetEventActive(12058, true);
}
else
{
GOeCharger_SetCurrentChargingAmperage( 52269, 16);
GOeCharger_SetActive( 52269, false );
IPS_SetEventActive(12058, true);
}
}
else
{
GOeCharger_SetCurrentChargingAmperage( 52269, 16);
//GOeCharger_SetActive( 52269, true );
IPS_SetEventActive(12058, false);
}
?>