Kostal Smart Energy Meter (KSEM) mit einem Victron System (VenusOS Gerät) verbinden

@pilz8472 Hm, das sieht nicht gut aus. Eigentlich sollte das "Found Kostal...." Nur einmal kommen. Genaugenommen enthält mein Skript nicht die eigentliche Logik zum auslesen, sondern teilt dem victron nur mit. Wie die register zu interpretieren sind. Daher ist schwer zu sagen, was schief läuft. Kannst du den automatischen scan Mal ausschalten und das KSEM manuell hinzufügen? Kommt dann auch mehrfach der log Eintrag? Welche Firmware hat das KSEM?

Das KSEM hat FW 1.5.0.

Automatischer Scan nach ModBusTCP devices ist aus. Macht auch keinen Unterschied ob er an ist oder nicht. Manuell hinzufügen ändert nichts.

Ich prüfe dann nochmal die *.py files und den cache im MUltiplus. Wenn du sagst die Meldung "Found Kostal..." dürfte nur einmal kommen habe ich ja einen Anhaltspunkt wo ich suchen muss. Ich hatte bisher die FW 3.13 vom Multiplus II GX im Verdacht.

Hallo an alle in diesem Faden, bitte keine rote Schrift verwenden, die benutzen wir für Moderation. Ihr könnt jede andere Farbe verwenden. Bitte ändern. DANKE !!

Also ich habe die beiden Dateien

Kostal_SmartEnergyMeter.py und
dbus-modbus-client.py

zur Sicherheit nochmal aus dem Cache gelöscht und nochmal kompiliert. Automatisches Scannen im MultiPlus ist aus. Dann rebootet. Das hier steht wieder in der Log-datei "Current":

@40000000659e7dbe01eeca04 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7dd02cd856cc *** CCGX booted (0) ***
@40000000659e7dd111085424 *** starting dbus-modbus-client ***
@40000000659e7dd6340d189c INFO Waiting for localsettings
@40000000659e7de1111f915c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7deb135764a4 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7df515a027dc INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7dff17efe824 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e091a36aba4 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e131cef66ec INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e1d1fdf9d54 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e2722bfed6c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e3125711b1c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e3b27b06c5c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e4529e47acc INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e4f2c41b44c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e592e7c17d4 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e6330c46dac INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e6d32ec81b4 INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e773527d76c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1
@40000000659e7e813767113c INFO Found KOSTAL_KSEM at tcp:192.168.0.11:502:1

Dieses Mal ohne die vorherige sporadische Fehlermeldung, aber doch mehrfach ein "Found KOSTAL...". Und in der Konsole gibt es kein KSEM, weder beim manuellen Scan, noch beim Automatischen Scan, noch beim manuellen Hinzufügen.

Hallo zusammen, erstmal Danke an Phil, dass er sich die Arbeit gemacht hat!

Ich habe ein ähnliches Problem wie @pilz8472 und bekomme den KSEM nicht in meinem Multiplus 2 3000 GX angezeigt.

In/var/log/dbus-modbus-client/current steht nur wiederholt Found KOSTAL_KSEM at tcp:192.168.68.61:502:1 mit wechselden IDs vorne:

...
@4000000065ad5f6010609e8c INFO Found KOSTAL_KSEM at tcp:192.168.68.61:502:1
@4000000065ad5f6a14a16134 INFO Found KOSTAL_KSEM at tcp:192.168.68.61:502:1

wenn ich in /var/log/dbus-modbus-client/@4000000065ad56b421aaef44.s schaue steht zumindest mal eine Fehlermeldung:

@4000000065ad47fe15cd5e14 *** starting dbus-modbus-client ***
@4000000065ad4803127c75c4 INFO Waiting for localsettings
@4000000065ad48031c84e164 INFO registered ourselves on D-Bus as com.victronenergy.modbusclient.tcp
@4000000065ad48bc007a71b4 INFO Starting background scan
@4000000065ad48bc01e17fac INFO Scanning 192.168.68.59/22
@4000000065ad48c101f2f854 INFO Found KOSTAL_KSEM at tcp:192.168.68.61:502:1
@4000000065ad48c105b10ddc INFO Error initialising tcp:192.168.68.61:502:1, skipping
@4000000065ad48c106320194 Traceback (most recent call last):
@4000000065ad48c10639587c File "/opt/victronenergy/dbus-modbus-client/dbus-modbus-client.py", line 98, in scan_update
@4000000065ad48c106396fec self.init_device(d, False)
@4000000065ad48c1063a1fb4 File "/opt/victronenergy/dbus-modbus-client/dbus-modbus-client.py", line 296, in init_device
@4000000065ad48c1063a2f54 super().init_device(dev, *args)
@4000000065ad48c1063a3724 File "/opt/victronenergy/dbus-modbus-client/dbus-modbus-client.py", line 121, in init_device
@4000000065ad48c1063a46c4 dev.init(self.dbusconn, enable)
@4000000065ad48c1063ab80c File "/opt/victronenergy/dbus-modbus-client/device.py", line 278, in init
@4000000065ad48c1063ac7ac self.device_init()
@4000000065ad48c1063b2954 File "/opt/victronenergy/dbus-modbus-client/Kostal_SmartEnergyMeter.py", line 46, in device_init
@4000000065ad48c1063b38f4 Reg_u64b(0x0200, '/Ac/Energy/Forward', 10000, '%.1f kWh'),
@4000000065ad48c1063b9a9c File "/opt/victronenergy/dbus-modbus-client/Kostal_SmartEnergyMeter.py", line 13, in init
@4000000065ad48c1063baa3c super(Reg_u64b, self).init(base, 4, *args, **kwargs)
@4000000065ad48c1063c07fc File "/opt/victronenergy/dbus-modbus-client/register.py", line 59, in init
@4000000065ad48c1063c179c super().init(base, self.count, name, text, write, **kwargs)
@4000000065ad48c1063df814 AttributeError: 'Reg_u64b' object has no attribute 'count'
@4000000065ad491d0d499e74 INFO Scan completed in 97 seconds
@4000000065ad4d3607bfb9fc INFO Found KOSTAL_KSEM at tcp:192.168.68.61:502:1

Auf dem Multiplus läuft Firmware 3.13

Auf KSEM läuft 1.4.1

KSEM Device ID sollte eigentlich okay sein.

C:\TMP>python read_modbus_tcp_register.py
IP (v4) Address of your KOSTAl SMart Energy Meter (KSEM): 192.168.68.61
KSEM Device ID (Decimal): 18514

Hat jemand eine Idee was das Problem ist?

Ich weiß nicht, ob das jetzt die korrekte Lösung ist, aber ich konnte das Problem bei mir lösen indem ich in der Datei Kostal_SmartEnergyMeter.py diesen Teil hier auskommentiert habe.

#class Reg_u64b(Reg_num):

def init(self, base, *args, scale=1, **kwargs):

super(Reg_u64b, self).init(self, base, *args, **kwargs)

self.coding = ('>Q', '>4H')

self.scale = float(self.scale)

Ich denke mal das Problem kommt aus eine Änderungen in der neuen VenusOS 3.13, die bei mir läuft. Sieht aber jetzt ganz gut aus:

1 „Gefällt mir“

You made my day, can't believe it - it's working now !!!! :heart_eyes: :heart_eyes:

Ich verwende VOS v3.12

Habe auch in /opt/victronenergy/dbus-modbus-client/pycache die Datei dbus-modbus-client.cpython-38.pyc gelöscht.

Und dann reboot - perfect !!

Habe allerdings gerade den Eindruck bekommen, das einige Werte vielleicht doch nicht ganz sauber laufen:

Hier gibt es möglicherweise einen Widerspruch - ohne jetzt weiter gesucht zu haben:

Und auch hier:

Aber vielleicht muß nur ich noch etwas tiefer einsteigen.

Es werden die Energiewerte L1 - L3 / kWh nicht sauber ausgelesen oder dargestellt, sie verändern sich nicht.

Vielleicht hat jemand schon die richtigen Register gefunden ?

Alles auf den Kopf stellen möchte ich, so aus der Hüfte geschossen, auch nicht.

Hallo zusammen,

ich möchte euch einen "Abschlussbericht" geben, wie ich das Problem nun gelöst habe. Nach Hilfe durch @Wolfe habe ich den gleichen Weg gewählt wie er: Ich habe ein kurzes Node-red Program geschrieben, das per ModBus das Kostal KSME ausliest und auch per ModBus den gewünschten Leistungswert an den MultiPlus II GX weitergibt. Die Pylontech US3000C Batterien werden direkt and den MultiPlus angeschlossen wie in der Anleitung.
Node-red läuft auf dem MultiPlus II nach upgrade auf "large OS", das sind auch alle victronspezifischen Nodes direkt verfügbar und funktionsfähig.
Das System regelt auf Nulleinspeisung.
Als Besonderheit ist noch die Zewotherm Lambda EU13L Wärmepumpe in dem System drin. Damit deren Energiemanager mir nicht den ganzen Akku verbraucht oder gar auf PVstromerkennung schaltet wird bei Batterieentladung UND Wärmepumpenbetrieb nicht auf Nulleinspeisung geregelt sondern auf 0,5 kW Unterdeckung. Das hat auch den Vorteil dass weniger Strom aus der Batterie in die WP geht, weil WP Strom ist günstiger als Hausstrom und daher sollte der Batteriestrom den Hausstrom abdecken, und er danach den Wärmepumpenstrom. Eventuell kann man das noch durch Anpassung dieser "0,5 kW Unterdeckung" optimieren.

Falls es jemandem hilft hier ist der Code dazu:

20240205_battery_Control_final.txt (13.7 KB)

20240117_benutzte_paletten.txt (175 Bytes)

Er ist nicht schön, eher nach dem Prinzip 80/20 und der scheint seit 3 Wochen zu funktionieren. Wenn jemand dazu Kommentare oder Verbesserung hat, bitte gerne weiterentwickeln.
VG
Pilz8472

1 „Gefällt mir“

@riggading Hallo, ich habe bei mir die Version 2.4.1 auf dem KSEM laufen und so wie es in der GitHub Anleitung steht den Kostal Smartmeter Python Skript eingebunden. Leider findet der Cerbo beim Scan den Kostal nicht.

Nach der direkten Eingabe der IP Adresse funktioniert es leider weiterhin nicht (Screenshots auch von der Einstellung im KSEM findet anbei).

Soweit ich es verstehe musstet ihr best. Adressen im GitHub Code von Philipp Mahler ändern, damit es lief?
Muss man, wenn man Änderungen am Code macht dann im pycache mit rm bestimmte files löschen (ich arbeite zum ersten mal mit Python)?

@riggading Hallo, ich habe den Tip von Chris__ umgesetzt und die gleichen Zeilen in der Kostal_SmartEnergyMeter.py auskommentiert und jetzt funktioniert es!

@fredg & @chris__ wie genau habt ihr die Kostal_SmartEnergyMeter.py auskommentiert? Bin leider in der Kommandozeile unbewandert. Wie komme ich da hin wenn ich per SSH auf dem VenusOS bin?

Hallo Vestax-1,
der ursprüngliche Beitrag von Philip Mahler auf GitHub erklärt die Schritte besser als ich es je könnte, denn ich habe auch gerade erst angefangen mich in die Linux / Venus Os Synthax einzuführen:

github.com/pmcgn/dbus-modbus-client-kostal-smartmeter

VG

FredG

@fredg Danke, schau ich mir an :wink:

Hallo,

ich habe gestern, dumm wie ich war, ein Update von Venus OS auf die 3.22 gemacht und leider funktioniert nun der KSEM nicht mehr. Habe schon geschaut, eigentlich alles wie es soll, nur es wird nicht mehr abgefragt und ich finde es via Modbus Scan nicht mehr. Händisch eintragen hilft auch nicht.

Vorher hat es funktioniert, aber nur nachdem ich die IP des KSEM mit Hand eingetragen habe. Hat jemand ne Tipp?

habe es gefunden. In der Dbus-Modbus-Client Datei fehlte der Import Eintrag für den KSEM. Nach dem Eintragen und reboot war er wieder da und funktioniert problemlos.

@chris__

Ich war auch schon am verzweifeln nach einem Update auf v3.42

Aber das auskommentieren war meine Rettung!

Für jeden der überlegt ein Update zu machen:

v3.42 und KSEM funktioniert mit dem auskommentieren von

#class Reg_u64b(Reg_num):
# def init(self, base, *args, scale=1, **kwargs):
# super(Reg_u64b, self).init(self, base, *args, **kwargs)
# self.coding = ('>Q', '>4H')
# self.scale = float(self.scale)

1000 Dank!

Tolle Arbeit und super Informationen hier im Forum.

Ich habe nun meinen Warenkorb mit den Komponenten "gefüllt".

Es wird ein Victron Multiplus II GX 48V - 3000VA - 35A mit dann (vorerst) 1x US5000. Evtl. kommt dann mal ein 2. US5000 dazu.

Als Zubehör habe ich immer gefunden, dass 1x Victron Energy RS485 to USB Interface benötigt zur Verbindung mit dem EnergyMeter benötigt wird.

Brauche ich dieses Kabel überhaupt? Wenn ich doch KSEM im LAN habe und eben auf den GX das script aus dem pmcgn github laufen lasse, dürfte doch der RS485 Anschluss des KSEM an den MP II überflüssig sein.

Oder habe ich mich da geirrt?

Kleine Nebenfrage (offtopic): Brauche ich den Victron MK3 USB Interface (VE.Bus to USB) ebenfalls ggf. garnicht, wenn ich alles über Web einrichte?

Danke für die Hilfe und Infos

Jörg

@solareintreiber

Ich gehe mal davon aus, dass Du einen Cerbo GX oder eine vergleichbare Steuereinheit für das ESS dazu bestellst. Wenn dem so ist, der Cerbo GX hängt dann am LAN, der KSEM ebenfalls und somit brauchst Du keine zusätzliche ModBus Verbindung.Im Thread findest Du die notwendigen Details wie der Cerbo GX dann die Daten des KSEM erhält.
Da Du KEIN 3-Phasen System aufbauen willst, kannst Du das ESS über das VRM Portal einrichten. Das funktioniert beim Einphasensystem gut. Ergo für diese Einrichtung brauchst Du keinen MK3 Adapter.

viel Erfolg

Moin ! Kleines Feedback von mir.

Auskommentieren hat mit der 3.5 Version ebenfalls funktioniert.

Bei mir wurde der modbus nicht gefunden und auch auch scannen funktionierte nicht.

Lösung:

Ich habe das ganze System nochmal neu Installiert und die alte Config mit V.E.Config neu aufgespielt. Ansonsten das Verfahren wie auf der Github Seite angewendet.

Danach lief es !