Hab den SMA HM 2.0 im Einsatz und hatte zuerst auch falsche Bezugswerte für L1-L3
Nach folgender Anleitung, schaut mein Skript jetzt so aus. Werte scheinen jetzt richtig zu sein.
http://www.eb-systeme.de/?page_id=1240
<?
if ($_IPS["SENDER"] == "RegisterVariable") // über Register Var ausgeführt
{
$Data = RegVar_GetBuffer($_IPS["INSTANCE"]); // im Puffer der Instanz vorhandene Daten in $data kopieren
$Data .= $_IPS["VALUE"]; // neu empfangene Daten an $data anhängen
$CRLF = ",
";
$HexData = bin2hex($Data);
SetValue(17741 /*[Energie Zähler\SMA Home Manager xt]*/, substr($HexData,417, 16 ));
//SetValue(17741 /*[Energie Zähler\SMA Home Manager xt]*/, $HexData);
SetValue(40340/*[Energie Zähler\SMA Home Manager\Bezug - Summe]*/,(float)hexdec(substr($HexData,64, 8 ))/10);
SetValue(57868/*[Energie Zähler\SMA Home Manager\Einspeisung - Summe]*/,(float)hexdec(substr($HexData,104, 8 ))/10);
SetValue(54931 /*[Energie Zähler\SMA Home Manager\Bezug - L1]*/,(float)hexdec(substr($HexData,336, 8 ))/10);
SetValue(23803 /*[Energie Zähler\SMA Home Manager\Bezug - L2]*/,(float)hexdec(substr($HexData,624, 8 ))/10);
SetValue(53613 /*[Energie Zähler\SMA Home Manager\Bezug - L3]*/,(float)hexdec(substr($HexData,912, 8 ))/10);
SetValue(19875 /*[Energie Zähler\SMA Home Manager\Einspeisung - L1]*/,(float)hexdec(substr($HexData,376, 8 ))/10);
SetValue(15525 /*[Energie Zähler\SMA Home Manager\Einspeisung - L2]*/,(float)hexdec(substr($HexData,664, 8 ))/10);
SetValue(37841 /*[Energie Zähler\SMA Home Manager\Einspeisung - L3]*/,(float)hexdec(substr($HexData,952, 8 ))/10);
SetValue(33808 /*[Energie Zähler\SMA Home Manager\Bezogene Energie]*/,(float)hexdec(substr($HexData,80, 16 ))/3600000);
SetValue(21006/*[Energie Zähler\SMA Home Manager\Eingespeiste Energie]*/,(float)hexdec(substr($HexData,120, 16 ))/3600000);
}
?>
