nachdem ich viel hier im Forum gelesen habe, läuft nun auch mein selbstgebauter Akku (JKBMS) mit einem Victron Multiplus II, einem Cerbo GX und einer Kostal PV Anlage. Für die Kommunikation zwischen Cerbo GX (=Venus OS device) und dem Kostal KSEM habe ich ein entsprechendes Modul geschrieben, welches direkt auf dem Cerbo GX installiert wird. Anschließend taucht der KSEM in der WebUi von dem Cerbo GX auf und die Anlage regelt den Ladestrom richtung Akku basierend auf den Daten des KSEM.
Über Feedback bzw. Verbesserungsvorschläge freue ich mich. Es ist noch Raum für Verbesserungen vorhanden, aber grundsätzlich funktioniert es. Hoffe es hilft jemandem
Vielleicht kann jemand bescheid sagen, wenn es auf eine RPi mit dem VenusOS läuft, das habe ich nicht getestet...
Oh, da habe ich eventuell einen Schritt in der Anleitung vergessen. Lösch mal bitte in /opt/victronenergy/dbus-modbus-client/pycache die datei dbus-modbus-client.cpython-38.pyc und starte danach neu. Die Datei wird beim hochfahren wieder neu angelegt, beinhaltet aber dann die von dir hinzugefügte Zeile
Die 1 bei "Einheit" ist egal, wird wohl nicht benutzt bei ModbusTCP.
Und sag bitte bescheid, wenn es daran gelegen hat. Dann passe ich das readme an.
Welche Firmware hast du auf dem KSEM (unter Device Settings)? Ich bin noch bei 1.1.2, damit habe ich wohl 8 neuere Versionen Verpasst.
Laut dem changelog von 2.0.0 muss man jeden client aktiv freischalten, also ja. Versuch es mal (Da du die Einstellungen hast, gehe ich davon aus, dass du 2.0.0 hast).
Ich habe gerade nochmal im Handbuch nachgeschaut, theoretisch muss nur der Modbus Slave eingeschaltet sein. Damit ist auf dem KSEM der Server aktiv und das Venus OS Gerät fragt als Master die Daten ab. Problem ist, das Handbuch ist schon länger nicht mehr aktualisiert worden und auch die Registertabelle bezieht sich auf die Firmware 1.1.2. Also entweder hat sich nichts geändert, oder eben doch und es nicht dokumentiert von Kostal. Vor letzterem habe ich gerade Angst und will bei mir das Update nicht machen - sorry
Folgendes würde ich noch versuchen:
Nimm das Venus OS als Master im KSEM wieder raus (ansonsten versucht das KSEM aktiv die daten zu schicken)
Starte noch einmal den Scan im Web UI des VenusOS. Aber wichtig, nicht in der Kategorie "Energy Meter" sondern in der Kategorie "Modbus TCP devices"
Lies danach per SSH die Datei /var/log/dbus-modbus-client/current von dem Venus OS gerät aus
Wenn es funktioniert, sollte da sowas auftauchen:
@4000000063c8f77735107324 *** starting dbus-modbus-client *** @4000000063c8f78115a11a0c INFO Waiting for localsettings @4000000063c8f78115e57ddc INFO waiting for settings @4000000063c8f783101155ac INFO Found KOSTAL_KSEM at tcp:192.168.2.53:502:1 @4000000063c8f78613a59444 INFO registered ourselves on D-Bus as com.victronenergy.grid.cg_0 @4000000063c8f78619c3e0ec INFO registered ourselves on D-Bus as com.victronenergy.modbusclient.tcp
Sollten irgendwelche Fehler auftauchen, poste die bitte. Wenn du dir nicht sicher bist, häng einfach die ganze Datei an, oder die letzten 100 Zeilen.
Ansonsten sieht aber alles gut aus, bin nochmal all deine Screenshots durchgegangen und habe sie mit meinen Einstellungen verglichen.
Kein Problem, ich fände ich es ja auch gut wenn sich die Arbeit gelohnt hat und ich will natürlich Updates auf dem ksem installieren können. Ich habe leider ganz stark die 2.0.0 in Verdacht.
Dass der MP2 fehlt, ist egal. Ich hatte ihn nichtmal ausgepackt, als ich das Script getestet habe. Die Neuinstallation kannst du dir auch sparen, laut den logs läuft der Scan ja.
Ich schaue die nächsten Tage Mal, ob ich das venusos auf einem Pi testen kann. Falls das nicht hilft, mache ich das ksem Update. Dann kann ich das besser testen. Problem ist halt, man käme danach nicht wieder zurück und ich bin so froh dass der Akku endlich läuft...
Du könntest nochmal alles aus dem pycache Ordner löschen und dann neustarten. Ich habe das zwischendurch auch immer Mal gemacht. Aber ist auch eher ein Akt der Verzweifelung ?
Ja genau, darum habe ich mich auch dran gesetzt. Ich wollte das auch noch für den Plattenfigur machen, aber wir du sagst, das wäre halt nur schön.
Die andere Variante macht das leider nicht so wie ich es gerne hätte. Der Kollege war sehr fleißig, aber hat etwas zu viel gemacht. Er hat einen komplett eigenen Service geschrieben und muss sich somit um vieles technische Probleme selbst kümmern. In meinem Fall nutze ich den Modus Client service und teile ihm quasi mit, wir ein ksem aussieht.
ich bin heute endlich dazu gekommen, mir das etwas genauer anzuschauen. Ich habe das VenusOS auf einem Raspberry Pi 3 installiert und tatsächlich einen kleinen Unterschied festgestellt. D.h. ich konnte das Problem reproduzieren und beheben. Und zwar wurde das geänderte python script nicht automatisch kompiliert, nachdem du den import hinzugefügt hast (auf meinem Cerbo GX ist das automatisch passiert).
Geh bitte mal per SSH in den Ordner /opt/victronenergy/dbus-modbus-client und führe das kommando "python -m py_compile dbus-modbus-client.py"
Nach einem Neustart ist das KSEM bei mir sofort in der Übersichtsseite aufgetaucht, es war allerdings noch als Gerät im UI registriert. Falls du es zwischendurch gelöscht hast, musst du es natürlich wieder hinzufügen
Sag mal bescheid ob es funktioniert hat, dann ergänze ich den Schritt im Tutorial.
Gute Frage. Keine Ahnung wie die das intern priorisieren. Aber am Ende wird sich das venusos für einen entscheiden. Du wirst damit bestimmt nichts kaputt machen.
Hi zusammen, ich habe das gleiche Problem, dass trotz den Schritten im Tutorial ich den KSEM nicht finde. Ich habe ihn auch manuell hinzugefügt, aber bis jetzt ohne Erfolg. Bei dem KSEM verwende ich die neuste Software.
Hey, coole Sache das du das gebaut hast! Versuch das gerade auch mitm Pi und ner neueren Version des KSEMs umzusetzen aber er will es einfach nicht finden :-/
Mein cerbo hat die aktuelle Firmware und der ksm die Version 1.1.2 verstehe aber nicht so ganz das mit dem Download und mit den Dateien speichern Ware über Hilfe sehr dankbar am liebsten über Telefon oder teamviever
Hallo,
Hatte auch das Problem das ich keine Verbindung vom RPI auf den KSEM hinbekommen habe, der TCP-Modbus Scan lieferte keine Ergebnisse. Ich habe aber eine Lösung gefunden. Lt. "BA_KOSTAL_Interface_KSEM_EN.pdf" (google hilft;-)) Identifiziert sich der KSEM mit der (Standard-)Antwort 0x4852 hex (18514 dez) an der Adresse 0x2001. Interessanterweise ist aber in der GitHub Version (Stand 20.02.23) in Kostal_SmartEnergyMeter.py als Identnummer 18498 dez hinterlegt. Also bei mir hat daher geholfen
models = {
18498: { ....
durch
models = {
18514: { ....
zu ersetzen! Danach reboot + Modbus-TCP Scan und funzt perfekt! Vielen Dank! Das spart mir einen Smartmeter
Hey, ich hab das ausprobiert aber leider erkennt der das bei mir immer noch nicht... :-/ Irgendwelche Ideen?
Ich haben die VenusOS Version 2.93 und KSEM Version 2.1.0
Bin die Installationsanleitung von Github durchgegangen. Zusätzlich noch die Anpassung mit dem Identnummer und anschließend auch noch das "python -m py_compile dbus-modbus-client.py" von der ersten Seite...
@MoJo_solsol: Danke für die genaue Erklärung. Ich habe natürlich den Wert eingetragen, den mein KSEM an der Adresse liefert. Das wäre natürlich ätzend, wenn Kostal den Wert mit unterschiedlichen Firmware Versionen verändert. Ich trage deinen Wert bzw. den aus der Doku zusätzlich in dem Skript ein.
@riGGaDing: Hast du nach der Änderung (von MoJo_solsol) die Dateien in dem Unterordner pychache geöscht und einen neustart gemacht? Eigentlich sollte das kommando, den Schritt ersetzen, aber versuch es einfach mal. Also dateien löschen, dann das kommando, dann neustarten.
Ich muss leider zugeben, dass ich mich gerade nicht so richtig traue die 2.0.x Firmware auf dem KSEM zu installieren. Das würde bei der Fehlersuche enorm helfen, aber ich habe endlich alles am laufen und habe Angst, dass ich nach dem Update wieder wochenlang basteln muss... Sorry
Arrrgh!
Hatte übersehen das ich zwei Änderungen zugleich vorgenommen habe! Und jetzt in Versuchen verifiziert das erst beide zusammen zum Erfolg führen .... zweiter Versuch, bitte probieren. In Kostal_SmartEnergyMeter.py folgende Änderungen (in rot) vornehmen:
models = { 18514: {
'model': 'KOSTAL_KSEM',
'handler': Kostal_SmartEnergyMeter,
},
}
probe.add_handler(probe.ModelRegister(Reg_u16(0x2001), models,
methods=['tcp'],
units=[1]))
Danach reboot und Modbus-TCP scan ...
Den Hint mit dem Reg_u16 hab ich aus einem Forumseintrag zu Link entfernt -> Link findet Ihr mit google suche nach "power-meter-lib-for-modbus-rtu-based-meters-from-a" Hat angeblich was mit der V2.92 zu tun. Kann mir jemand erklären was diese Änderung bewirkt? Na egal ... auch ein blindes Huhn findet einmal ein Korn ....
Übrigens: meine KSEM SW Version ist 2.1.0 und Venus OS ist V2.92 auf einem RPI. Und ... das mit der Deaktivierung habe ich auch gehört! Soll noch heute am Faschingsdienstag stattfinden! LeiLei ...