dbus-serialbattery mit Victron

Hi,

da das Thema immer mal wieder erwähnt wird, wollte ich mal einen eigenen Beitrag dazu aufmachen. Es geht um
https://github.com/Louisvdw/dbus-serialbattery

Hier können wir dann über Anschluss und Fragen zur Installation diskutieren.

Ich fange dann auch gleich mal an... Wie genau habt ihr das BMS mit dem Venus OS verbunden?

Ich habe ein Cerbo und frage mich, ob ich einen der VE-Direct Anschlüsse nutzen könnte, das sind ja im Prinzip RS-232 Anschlüsse soweit ich das verstanden habe. Sind die Cerbo Anschlüsse galvanisch getrennt? Denn sonst müsste man stattdessen vermutlich einen externen USB-Dongle verwenden...

Hi,

da das Thema immer mal wieder erwähnt wird, wollte ich mal einen eigenen Beitrag dazu aufmachen. Es geht um
https://github.com/Louisvdw/dbus-serialbattery

Hier können wir dann über Anschluss und Fragen zur Installation diskutieren.

Ich fange dann auch gleich mal an... Wie genau habt ihr das BMS mit dem Venus OS verbunden?

Ich habe ein Cerbo und frage mich, ob ich einen der VE-Direct Anschlüsse nutzen könnte, das sind ja im Prinzip RS-232 Anschlüsse soweit ich das verstanden habe. Sind die Cerbo Anschlüsse galvanisch getrennt? Denn sonst müsste man stattdessen vermutlich einen externen USB-Dongle verwenden...
Die VE.Bus-Anschlüsse sind isoliert
Die VE.Direct-Anschlüsse sind isoliert
Die VE.Can-Anschlüsse sind nicht isoliert.
Die USB-Anschlüsse sind nicht isoliert. Der Anschluss eines WLAN- oder GPS-Dongles stellt kein Problem dar, da er nicht an eine andere Stromversorgung angeschlossen ist. Obwohl es eine Erdschleife gibt, wenn Sie einen separat gespeisten USB-Hub montieren, haben wir bei umfangreichen Tests keine Probleme festgestellt.
Der Ethernet-Port ist isoliert, mit Ausnahme der Abschirmung: Verwenden Sie ungeschirmte UTP-Kabel für das Ethernet-Netzwerk.
Quelle:
https://www.google.com/
https://www.victronenergy.com/media/pg/Cerbo_GX/de/installation.html

Ich hab das BMS mit einem 5€ USB-RS485/RS232-Adapter verbunden. Die Verbindung ist vermutlich schlecht, weil nur etwa jede vierte Anfrage vom BMS beantwortet wird. Funktioniert aber grundsätzlich, bis jetzt auch zuverlässig.
Venus OS läuft aber auf einem Raspi.

Nutzt jemand den dbus-serialbattery mit einem Daly BMS? Vielleicht kann man sich ja austauschen.

Hi,

da das Thema immer mal wieder erwähnt wird, wollte ich mal einen eigenen Beitrag dazu aufmachen. Es geht um
https://github.com/Louisvdw/dbus-serialbattery

Hier können wir dann über Anschluss und Fragen zur Installation diskutieren.

Ich fange dann auch gleich mal an... Wie genau habt ihr das BMS mit dem Venus OS verbunden?

Ich habe ein Cerbo und frage mich, ob ich einen der VE-Direct Anschlüsse nutzen könnte, das sind ja im Prinzip RS-232 Anschlüsse soweit ich das verstanden habe. Sind die Cerbo Anschlüsse galvanisch getrennt? Denn sonst müsste man stattdessen vermutlich einen externen USB-Dongle verwenden...
Die VE.Bus-Anschlüsse sind isoliert
Die VE.Direct-Anschlüsse sind isoliert
Die VE.Can-Anschlüsse sind nicht isoliert.
Die USB-Anschlüsse sind nicht isoliert. Der Anschluss eines WLAN- oder GPS-Dongles stellt kein Problem dar, da er nicht an eine andere Stromversorgung angeschlossen ist. Obwohl es eine Erdschleife gibt, wenn Sie einen separat gespeisten USB-Hub montieren, haben wir bei umfangreichen Tests keine Probleme festgestellt.
Der Ethernet-Port ist isoliert, mit Ausnahme der Abschirmung: Verwenden Sie ungeschirmte UTP-Kabel für das Ethernet-Netzwerk.
Quelle:
https://www.google.com/
https://www.victronenergy.com/media/pg/Cerbo_GX/de/installation.html
Danke für die Zusammenfassung.

Ich war auch gerade am Cerbo unten, weil ich wissen wollte, ob der Eintrag aus der Victron Community stimmt... USB MINUS hat Durchgang zu allen anderen USB MINUS und eben zum MINUS vom Kabel für den UART USB Adapter. Ich konnte aber keinen Durchgang zu den BUS RJ45 Ports messen und auch keinen zum MP2. Damit scheint es tatsächlich überflüssig zu sein, einen zusdätzlich getrennten Adapter zu benutzen (am Cerbo, an einem Raspberry sieht das wieder anders aus, da müsste man am MP2 mal schauen, ob der auch isoliert ist). Dann probier ich einfach mal einen FTDI Adapter, den ich noch aus meinen Arduino Zeiten habe...

Vermutlich könnte ich auch einen VE.Direct Anschluss benutzen, aber die haben 12V Level, das ist vermutlich nicht für alle Geräte so gut, oder müssen die das abkönnen, wenn man nur RX, TX, MINUS anschließt?
Nutzt jemand den dbus-serialbattery mit einem Daly BMS? Vielleicht kann man sich ja austauschen.
Bin gerade dabei das anzuschließen.

Ich habe ein JK BMS mit dem Venus OS erfolgreich verbunden. Funktioniert aber nur per RS485 Protokoll.
Video Anleitung findet man hier => https://youtu.be/_pDsCU-x01Y

JK BMS Adapter RS 485 => Jikong BMS RS485 CAN module
USB Adapter wurde dieser empfohlen => https://www.waveshare.com/usb-to-rs485.htm

Die einzige Schwierigkeit ist die Beiden Daten Kabel richtig zu verbinden, wobei es da ja nur zwei Möglichkeiten gibt. :wink:

Funktioniert bei mir ohne Probleme und war sehr einfach umzusetzen, dank des Venus OS Plugins.

Moin,

Ich hab ein jk bms drüber laufen, an einem Cerbo mit USB Adapter von Waveshare. Funktioniert bisher ohne Probleme.

Nutzt jemand den dbus-serialbattery mit einem Daly BMS? Vielleicht kann man sich ja austauschen.
Jo,ich. Mit dem original Daly RS485 Kabel gibt es bei mir keine Verbindungsprobleme. Ob das aber Sinn macht den Anschluß überhaupt zu machen, bin ich mir nicht so sicher. Das BMS meldet dem Venus OS SOC Werte die so daneben liegen, das die ESS Funktion praktisch ausgehebelt wird. Ich habe in den Einstellungen die Batteriemessung des MP2 als zu benutzen aktiviert, um das zu umgehen.
Nutzt jemand den dbus-serialbattery mit einem Daly BMS? Vielleicht kann man sich ja austauschen.
Jo,ich. Mit dem original Daly RS485 Kabel gibt es bei mir keine Verbindungsprobleme. Ob das aber Sinn macht den Anschluß überhaupt zu machen, bin ich mir nicht so sicher. Das BMS meldet dem Venus OS SOC Werte die so daneben liegen, das die ESS Funktion praktisch ausgehebelt wird. Ich habe in den Einstellungen die Batteriemessung des MP2 als zu benutzen aktiviert, um das zu umgehen.
Ok das könnte beim jk auch son sein, habe den SOC noch über das BMS laufen, würde den Akku aber gerne über 54,4 volt bringen damit das BMS anfängt zu balancen... Allerdings steht der Akku bei 53,6 volt auf 99% und das CCL sinkt auf 5 amp... hält sich dann aber so lange bis die Sonne weg ist und dann wird schon entladen....
Wo oder wie genau holt er sich oder berechnet er die Werte für das Charge current limit?

Ich habe den raspi direkt am akku dran so dass ich zum bms nicht galvanisch trennen muss. Habe ein usb zu ttl kabel für 2€ bei ali bestellt. Zum multiplus trennt ja automatisch der 60€ ve.bus adapter. So weit alles easy

Ich habe den raspi direkt am akku dran so dass ich zum bms nicht galvanisch trennen muss. Habe ein usb zu ttl kabel für 2€ bei ali bestellt. Zum multiplus trennt ja automatisch der 60€ ve.bus adapter. So weit alles easy
Frage: Hängt der Raspi so am Akku, dass eine Abschaltung durch das BMS sich nicht auf die Spannungsversorgung des Raspi auswirkt? Wenn ja sehe ich ein Problem, dass Dir der Raspi die Batterie in die Tiefentladung treiben kann. Wenn Nein hast Du bei Abschaltung das Problem, dass der Raspi die Spannungsversorgung über die USB Schnittstelle zu ziehen versucht! Kommt dann drauf an wer als erstes stirbt, das BMS oder der Raspi :shock:
Strom kann so gemein sein :D Deshalb mach ich, wo möglich, immer eine galvanische Trennung, da man kaum alle möglichen Betriebszustände durchdenken kann.

Ist zwischen MP2 und dem Pi nicht auch ein VE.Direct Kabel und kein VE.Bus?
Victron ist da irgendwie sehr verirrend was deren Datenverbindungen angeht.

Ich würde auch alles galvanisch trennen. Wenn man für das Kabel von Victron dafür 30€ ausgibt, dann würde ich das machen. Wenn dir der Pi oder die Logik-Platine vom Victron durchbrennt, weil da irgendwo ein Strom fließt, wäre das ungünstig.

Der Cerbo ist über VE.Bus verbunden. Da ist es kein Problem, also keine besonderen Sicherheitsvorkehrungen nötig, wenn man die Batterie mit dem Cerbo verbindet.

Wird der Pi nich auch über den MK3 verbunden? Das ist doch VE.Bus.

Der Cerbo ist über VE.Bus verbunden. Da ist es kein Problem, also keine besonderen Sicherheitsvorkehrungen nötig, wenn man die Batterie mit dem Cerbo verbindet.

Wird der Pi nich auch über den MK3 verbunden? Das ist doch VE.Bus.
Im MK3 Kabel ist eine galvanische Trennung, das würde sonst bestimmt öfter zu Defekten führen. Laptop am Netz und dann an ein Gerät das auf einer anderen Leitung hängt ist immer gefährlich, mach ich nur noch im Akkubetrieb.
Der Cerbo ist über VE.Bus verbunden. Da ist es kein Problem, also keine besonderen Sicherheitsvorkehrungen nötig, wenn man die Batterie mit dem Cerbo verbindet.

Wird der Pi nich auch über den MK3 verbunden? Das ist doch VE.Bus.
Stimmt du hast Recht. Durch die ganzen VE.Bus, VE.Direct, etc kommt man komplett durcheinander. Hatte mich zu sehr an:
https://obenschlaefer.com/low-budget-energiemonitor-victron-venus-os-mit-raspberry-pi-obenschlaefer/#GUI_beim_Starten_automatisch_aktivieren
orientiert. Aber die Anleitung gilt ja nur für die SmartCharger und nicht den MP2.

Puh. Nochmal glück gehabt bevor ich das falsche Kabel bestelle.

Um genau zu sein beziehe ich den Strom für den raspi vom ttl port des jk bms. Dieser wiederum kommt von dem balance port.

Vorteil:
Bms an -> raspi an
Bms aus -> raspi aus

Bms abschaltung -> egal

Nutzt jemand den dbus-serialbattery mit einem Daly BMS? Vielleicht kann man sich ja austauschen.
Jo,ich. Mit dem original Daly RS485 Kabel gibt es bei mir keine Verbindungsprobleme. Ob das aber Sinn macht den Anschluß überhaupt zu machen, bin ich mir nicht so sicher. Das BMS meldet dem Venus OS SOC Werte die so daneben liegen, das die ESS Funktion praktisch ausgehebelt wird. Ich habe in den Einstellungen die Batteriemessung des MP2 als zu benutzen aktiviert, um das zu umgehen.
Schau mal in der utils.py ob du die Werte für Capacity richtig eingestellt hast. Außerdem schau mal dort ob du die maximale Lade- und Entladestromstärke nicht erhöhen kannst. Ich hab zusätzlich noch die Stromstärke zum Ende hin erhöht auf 10% des maximalen Ladestroms.
Geht aber leider nach einem Update verloren. Das ist noch nicht so schön gelöst. Bei mir passt der SOC etwa.
Schau mal in der utils.py ob du die Werte für Capacity richtig eingestellt hast
Ich habe keine Einstellung für Capacity: # Constants - Need to dynamically get them in future DRIVER_VERSION = 0.10 DRIVER_SUBVERSION = '' zero_char = chr(48) degree_sign = u'N{DEGREE SIGN}' # Cell min/max voltages - used with the cell count to get the min/max battery voltage MIN_CELL_VOLTAGE = 3.1 MAX_CELL_VOLTAGE = 3.45 # battery Current limits MAX_BATTERY_CURRENT = 50.0 MAX_BATTERY_DISCHARGE_CURRENT = 60.0 # Invert Battery Current. Default non-inverted. Set to -1 to invert INVERT_CURRENT_MEASUREMENT = -1 Bei der Gelegenheit aber bemerkt das warum auch immer die Einstellung auf Lion und nicht mehr auf LiFePo stand.

Also bei mir funktioniert das irgendwie nicht... log zeigt den Fehler

@4000000062e25543208bb01c INFO:SerialBattery:Starting dbus-serialbattery
@4000000062e2554320989cb4 INFO:SerialBattery:dbus-serialbattery v0.12
@4000000062e2554320bf81bc INFO:SerialBattery:Testing LltJbd
@4000000062e255432404fc44 INFO:SerialBattery:Connection established to LltJbd
@4000000062e255432a4893cc INFO:SerialBattery:DeviceInstance = 1
@4000000062e255432a551ebc INFO:SerialBattery:com.victronenergy.battery.ttyUSB0
@4000000062e255432dd56024 Traceback (most recent call last):
@4000000062e255432dd58b1c File "/opt/victronenergy/dbus-serialbattery/dbus-serialbattery.py", line 115, in <module>
@4000000062e255432dd59abc main()
@4000000062e255432dd59ea4 File "/opt/victronenergy/dbus-serialbattery/dbus-serialbattery.py", line 100, in main
@4000000062e255432dd5ae44 if not helper.setup_vedbus():
@4000000062e255432dd5b614 File "/opt/victronenergy/dbus-serialbattery/dbushelper.py", line 76, in setup_vedbus
@4000000062e255432dd5c5b4 self._dbusservice.add_path('/Info/BatteryLowVoltage', self.battery.min_battery_voltage, writeable=True)
@4000000062e255432dd80004 AttributeError: 'LltJbd' object has no attribute 'min_battery_voltage'

Die Fehler scheinen hier nicht richtig abgefangen zu werden und dadurch kann er die Geräte nicht durchsuchen, aber auch wenn ich alle außer DalyBMS deaktiviere, funktioniert es nicht so richtig:

@4000000062e255f80a3b1a3c INFO:SerialBattery:Starting dbus-serialbattery
@4000000062e255f80a403ea4 INFO:SerialBattery:dbus-serialbattery v0.12
@4000000062e255f80a562fd4 INFO:SerialBattery:Testing Daly
@4000000062e255f8121c44c4 INFO:SerialBattery:DalyBMS 0 cells
@4000000062e255f81287ef44 INFO:SerialBattery:Connection established to Daly
@4000000062e255f8157e308c INFO:SerialBattery:DeviceInstance = 1
@4000000062e255f8158a946c INFO:SerialBattery:com.victronenergy.battery.ttyUSB0
@4000000062e255f816833cac INFO:SerialBattery:Battery connected to dbus from /dev/ttyUSB0
@4000000062e255f921d8063c WARNING:SerialBattery:read_soc_data - triesValid 2
@4000000062e255f928df4b84 WARNING:SerialBattery:read_soc_data - triesValid 1
@4000000062e255f92991e244 Traceback (most recent call last):
@4000000062e255f92992056c File "/opt/victronenergy/dbus-serialbattery/dbushelper.py", line 176, in publish_battery
@4000000062e255f92992150c self.publish_dbus()
@4000000062e255f929921cdc File "/opt/victronenergy/dbus-serialbattery/dbushelper.py", line 186, in publish_dbus
@4000000062e255f929922894 self._dbusservice['/Soc'] = round(self.battery.soc, 2)
@4000000062e255f92992344c TypeError: type NoneType doesn't define round method

Hat noch jemand nen tip?

Kannst du mit 2x USB-TTL Intefaces (nur Rx-Leitungen) die Kommunikation abfangen und am PC mitloggen? Vielleicht zeigt sich dann das Problem.

Soc mit 2 Nachkommastellen? :slight_smile:

Soc'] = None if (self.battery.soc == None) else round(self.battery.soc, 2)

oder richtiger so:

Soc'] = self.battery.soc

denn für das Anzeigeformat in Venus gibt es das Callback bei der Definition von _dbusservice['/Soc'], oder es könnte/sollte da eins geben.