Neues Meter SDM 120

Hallo,
ich habe als ersten Gehversuch die Unterstützung des Einphasen-Zählers Eastron SDM 120 umgesetzt und funktioniert soweit.
Derzeit habe ich die Umsetzung in io.openems.edge.meter.eastron.sdm120 angesiedelt. Der Zähler ist der kleine Einphasen-Cousin des SDM 630. Seine Modbus-Register sind ein Subset von denen des SDM 630.
Bevor ich die Umsetzung pushe wollte ich fragen, ob die Umsetzung in dem separaten Package unter eastron so ok ist. Rein technisch ist die Umsetzung ja sehr ähnlich zu dem SDM 630.
Ob es einen SDM 120 von microcare gibt, weiss ich gerade nicht. Sehr verbreitet scheint er mir von Eastron zu sein.
Siedelt man den SDM 120 auch unter microcare an, um seine Verwandschaft zu dokumentieren?
Denkbar wäre auch, dass es nur eine Implementierung gibt, die beide unterstützt, was jedoch mit einer Umbenennung einher ginge?
Was ist hier wohl die bessere Vorgehensweise?

Noch eine Frage zum Verständnis. Der Zähler ist derzeit intern als Verbrauchszähler verdrahtet, hängt aber an einer PV-Anlage. Dadurch bekomme ich negative Werte geliefert. Die bleiben auch negativ, unabhängig davon, ob ich den Zähler in OpenEMS als Verbraucher oder Produzenten konfiguriert habe. Ist das so korerekt?

Du musst den Zähler um Ihn als Erzeugungszähler zu verwenden genau umgekehrt verdrahten - dann ist es korrekt.

Dementsprechend werden die Werte dann auch korrekt angezeigt.

Die Frage der Einbindung bzw. des PullRequests muss dir @stefan.feilmeier beantworten.

Grüße

Das Umverdrahten wollte ich mir eigentlich sparen. :wink: Den Zähler habe ich nur vorübergehend im Testbetrieb der Anlage

Du kannst es ja so machen, wie in der Janitza

Implementierung mit invert Values :slight_smile:

Sollte dann gehen ! :slight_smile:

1 Like

Hi @fanass,

wir versuchen normalerweise schon darauf zu achten, gleichartige Zähler (idealerweise vom selben Hersteller) in einem Bundle zu haben.
Ähnlich zu Janitza oder Socomec

Wenn ich mit der Annahme richtig liege, dass der eigentliche Zähler der selbe ist, müsste wahrscheinlich auch das existierende Paket io.openems.edge.meter.microcare.sdm630 nochmal sinnvoll umbenannt werden und z.B. alles in io.openems.edge.meter.eastron zu finden sein.

Viele Grüße,
Sebastian

1 Like

Unter Microcare SDM630 findet man tatsächlich auf google keinen eintrag mehr. Wäre eventuell auch darum schon schlauer, das umzubenennen auf Eastron, um eine suchbarkeit zu erleichtern

Wenn ich mit der Annahme richtig liege, dass der eigentliche Zähler der selbe ist, müsste wahrscheinlich auch das existierende Paket io.openems.edge.meter.microcare.sdm630 nochmal sinnvoll umbenannt werden und z.B. alles in io.openems.edge.meter.eastron zu finden sein.

Ja, das wäre sinnvoll. Die Meter-Implementierung von Microcare aus Südafrika (https://microcare.co.za/) war einer der ersten externen Beiträge zu OpenEMS. “Eastron” scheint tatsächlich der geläufigere Inverkehrbringer zu sein - ich finde die Umbenennung und zusammenführung sehr gut und sinnvoll.

Noch eine Frage zum Verständnis. Der Zähler ist derzeit intern als Verbrauchszähler verdrahtet, hängt aber an einer PV-Anlage. Dadurch bekomme ich negative Werte geliefert. Die bleiben auch negativ, unabhängig davon, ob ich den Zähler in OpenEMS als Verbraucher oder Produzenten konfiguriert habe. Ist das so korerekt?

Ich schlage auch vor, das mit einem invert-Setting zu implementieren. Das passiert ja tatsächlich häufig, dass ein Zähler falsch herum eingebaut wird und dann “per Fernwartung” korrigiert werden soll. So geht das elegant und es gibt auch ein paar Beispiele im Code.

Danke!

Gruß,
Stefan

1 Like

Sehr gut. Dann benenne ich das sdm630 Paket um. Die Suche auf der microcare Homepage liefert auch keine Informationen zu dem Zähler. Scheint nicht sehr verbreitet und nicht mehr im Handel zu sein.
Das invert-Setting habe ich schon umgesetzt. War in der Tat nicht aufwändig.

1 Like

Wie ist dann das weitere Procedere? Lt. Dokumentation Pull Request erzeugen. Allerdings komme ich nicht soweit, da ich nicht pushen darf. Sry für die dumme Frage - habe bisher nur mit einem firmeninternen bitbucket gearbeitet. Github bisher nur lesend.

In der Regel funktioniert es so:

  • openEMS forken → eigenen Fork bearbeiten → PullRequest aus fork erstellen :slight_smile:

Andernfalls kannst du mir das Reo gerne zur verüfgung stellen und ich mache daraus einen Request.

Grüße

Vielen Dank @ Sn0w3y.Ich habe mir einen fork eingerichtet und meine Änderungen gepusht. Bin nur noch nicht dazu gekommen, einen Request zu erstellen.

1 Like

Alles klar, kannst du mir eventuell nur die protecte defineModbusProtocol() funktion geben ? :smiley:

Danke dir ! :slight_smile: