SMA Energy Meter

Auch von mir ein großes DANKE für diese Beiträge! Das hat mir sehr geholfen und ich empfange nun problemlos über Multicast des EnergyMeter direkt mit IPSymcon alle Daten.

Super!

Hat jemand den Bezug- und Einspeisezähler mit dem Script erfolgreich angebunden ?

Viele Grüße und Danke

Benny

Habe es selbst gefunden, die Zählerwerte für Bezug und Lieferung können wie folgt ausgelesen werden.

  SetValue(38282 /*[Energie\Strom\Bezogene Energie]*/,(float)hexdec(substr($HexData,80, 16 ))/3600000);
    SetValue(39699 /*[Energie\Strom\Eingespeiste Energie]*/,(float)hexdec(substr($HexData,120, 16 ))/3600000);

Danke Dir Benny

Danke an die bisherigen Post. Ich bin schon fast verzweifelt das ich meinen SMA auswerten kann aber jetzt klappt alles und ich kann die Daten dann verarbeiten bzw. aufbereiten.

Für alle die auch den Sunny Home Manager 2.0 im Einsatz habe mal die Zusammenfassung und Darstellung.
Wie im Post 37 von Tommy angegeben folgende Variablen erstellen:

7x Float:
Bezug - L1
Bezug - L2
Bezug - L3
Bezug - Summe
Einspeisung - Summe
Bezogene Energie
Eingespeiste Energie

1x String:
txt

Das Script: anpassen mit den ID der erstellten Variablen.

<?

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(23057 /*[Energie Zähler\SMA Home Manager	xt]*/, substr($HexData,417, 16 ));

    SetValue(15785 /*[Energie Zähler\SMA Home Manager\Bezug - Summe]*/,/*[Energie Zähler\SMA Home Manager\Bezug - Summe]*/(float)hexdec(substr($HexData,64, 8 ))/10);
    SetValue(29836 /*[Energie Zähler\SMA Home Manager\Einspeisung - Summe]*/,(float)hexdec(substr($HexData,104, 8 ))/10);

    SetValue(28359 /*[Energie Zähler\SMA Home Manager\Bezug - L1]*/,(float)hexdec(substr($HexData,320, 8 ))/10);
    SetValue(11461 /*[Energie Zähler\SMA Home Manager\Bezug - L2]*/,(float)hexdec(substr($HexData,608, 8 ))/10-(float)hexdec(substr($HexData,648, 8 ))/10);
    SetValue(20101 /*[Energie Zähler\SMA Home Manager\Bezug - L3]*/,(float)hexdec(substr($HexData,896, 8 ))/10);
	SetValue(22869 /*[Energie Zähler\SMA Home Manager\Bezogene Energie]*/,(float)hexdec(substr($HexData,80, 16 ))/3600000);
    SetValue(35980 /*[Energie Zähler\SMA Home Manager\Eingespeiste Energie]*/,(float)hexdec(substr($HexData,120, 16 ))/3600000);
}
?>

SMA2.png

Einrichten einer I/O Instanz mit Multicast Socket:
SMA1.png

Oben kommt die IP des SMA Home Managers und unten ist die Multicast IP. Port 9522 einstellen.

Erstellen der Registervariable. Target ist das Script. Instanz ist der Multicast Socket:

So sieht es im Webfront aus:
SMA4.png

Danke an die bisherigen Post. Hoffe ich habe es verständlich zusammengefasst.

Habe testweise mal die beiden Zählerstände (Bezogene Energie/Eingespeiste Energie) bei meinem „alten“ Energy Meter hinzugefügt und siehe da, er liefert diese auch aus :slight_smile:
Klasse Arbeit!

LG Tommy

Schönen Abend, ich habe nun seid kurzem auch einen SMA nur leider bin ich was die ankommenden werte nicht ganz zufrieden. Ich komme aktuell nicht ganz drauf in was der Hexdump hier zerlegt wird. Ich sehe das immer einzelne bereich raus genommen werden die dann in einen Dec mal wert gewandelt werden. Nur woher ist bekannt welcher bereich welche Zahl entspricht. Versuche ich den gesamten String umzuwandeln kommt nix gescheites raus.

Liebe Grüße
Casi

So das Problem so eben behoben. Eine liebe PN Fragte mich ob ich unter Geräte Einstellungen dort dann im sehr kleinen Wandlereinstellungen diesen den an hätte… Siehe da Häckchen raus schon purzeln die Normaliesierten Daten rein. :rolleyes:

Liebe Grüße
Casi

Hallo,

ich habe einen SMA Home Manager 2.0 und das auslesen funktioniert auch soweit,
allerdings flackern die Werte immer so komisch. Hat einer einen Tipp was ich verkehrt gemacht habe?

[video]https://drive.google.com/file/d/13QWrLVnHoBkm9Sr7_hgFFGzhL2m6bWaK/view?usp=sharing[/video]

Moin Moin,

Ich habe eine einfache Lösung gefunden um den Gesamtverbrauch zu erhalten… So kann man auf SolarView verzichten. :slight_smile:

Da ich 2 SMA Energy Meter betreibe, einen regulär so wie er es halt machen soll und den 2. rein als PV Zähler, vor den WR,
benötige ich noch vom 2. Energy Meter

Einspeisung - L1
Einspeisung - L2
Einspeisung - L3

Hat das schon jemand schon ausgelesen?
wie sieht da das script aus?
wie kann ich die beiden Meter unterscheiden, da ja beide auf den selben Port senden, kann da per Seriennummer unterschieden werden?

vielen dank im voraus!

Hallo,

ich habe auch einen Energy Meter als Ertragszähler und einen SHM 2.0 als Verbrauchszähler und Akkusteuerung.
Kann ich die beiden per Seriennummer in dem Script trennen? Im programmieren bin ich noch in den anfängen. :confused:

Ich bekomme so einfach keine Werte, ich habe im Moment noch leider keine andere Alternative der Abfrage.

Schönen Gruß

Hallo em@il hast du das lösen können?

Ich wollte gern auch mein extra Energy Meter abfragen, welches auch eine andere IP hat, aber ich bekommen immer einen Fehler das die Adresse bereits verwendet wird. Ich denke das liegt am Port welcher ja schon vom Homemanager genutzt wird.

Wie kann ich bei Geräte in IPS anlegen und abfragen?

Grüße cerberus

Leider noch nicht, bin dem programmieren nicht bewandert :banghead:

Kannst Du den Port an dem Zähler ändern?
Gruß Helmut

Leider nein.

Grüße

Wenn Du ohnehin einen Raspberry benutzt, könntest Du Dir mal den SMA-EM Daemon anschauen. Der hat jetzt ein IPS Ausgabe Feature bekommen. Die dazugehörigen WebHook Scripte unterscheiden die Multicast-Geräte nach Seriennummer.

Das sieht dan so aus:

Da könnte man bei Bedarf auch noch mehr draus machen. Ich kenne den Programmierer :rolleyes:

Tommi

Hallo tommi, danke für den Hinweis. Genua das wollte ich nicht, eine seperate App laufen lassen um die Daten zu erstellen. Ich habe mittlerweile auf Docker umgestellt auf einem NAS, leider habe ich jetzt das Problem das ich für den Homemanager nix mehr rein bekomme, obwohl ich im Bridge Modus laufe und so keine Port Probleme auftrauchen sollten.

Grüße
Cerberus

Docker geht gar nicht oder zumindest nicht ohne Kopfstände, weil die Multcast-Pakete nicht durchkommen

Hallo tommi, also auch nicht wenn ich den Container als Bridge laufen habe mir eingener IP?

Gibt es eine Alternative?

Grüße
Ringo