Victron unterstützt nur wenige Batterien. Um Batterien mit JK-BMS betreiben zu können ist dieser Treiber erforderlich.
Voraussetzungen:
Aktuelle Version installieren:
wget -O /tmp/install.sh https://raw.githubusercontent.com/mr-manuel/venus-os_dbus-serialbattery/master/dbus-serialbattery/install.sh bash /tmp/install.sh
Im Installationsmenü Latest Release auswählen.
Anschließend den Cerbo neu starten:
reboot
Prüfen ob der RS485-Adapter erkannt wurde:
ls -l /dev/serial/by-id/
Beispiel:
usb-FTDI_FT232R_USB_UART_BG03Z45C-if00-port0 -> ../../ttyUSB1
Diese Konfiguration ist für einen Verbund aus Pylontech Batterien und DIY Batterien (beide 15 Zellen) ausgelegt. Die Pylontech Batterien sind via BMS_CAN am Cerbo angeschlossen. Die DIY (JK-BMS) Batterien via RS485/USB Adapter.
Die Datei config.ini überschreibt die Standardwerte aus config.default.ini.
Datei anlegen oder bearbeiten:
nano /data/etc/dbus-serialbattery/config.ini
Inhalt:
[DEFAULT] BMS_TYPE = Jkbms_pb BATTERY_ADDRESSES = 0x00 BATTERY_CAPACITY = 324 MAX_BATTERY_CHARGE_CURRENT = 150.0 MAX_BATTERY_DISCHARGE_CURRENT = 150.0 MIN_CELL_VOLTAGE = 2.850 MAX_CELL_VOLTAGE = 3.490 FLOAT_CELL_VOLTAGE = 3.410 SOC_RESET_CELL_VOLTAGE = 3.490 SOC_RESET_AFTER_DAYS = 30 CELL_VOLTAGES_WHILE_CHARGING = 3.550, 3.520, 3.500, 3.470, 3.430 MAX_CHARGE_CURRENT_CV_FRACTION = 0.000, 0.005, 0.050, 0.250, 1.000 CELL_VOLTAGES_WHILE_DISCHARGING = 2.800, 2.850, 3.000, 3.100, 3.190 MAX_DISCHARGE_CURRENT_CV_FRACTION = 0.000, 0.005, 0.050, 0.250, 1.000 TEMPERATURES_WHILE_CHARGING = 0, 5, 10, 45, 50 MAX_CHARGE_CURRENT_T_FRACTION = 0.00, 0.50, 1.00, 1.00, 0.00 TEMPERATURES_WHILE_DISCHARGING = -35, -30, 0, 10, 55, 60 MAX_DISCHARGE_CURRENT_T_FRACTION = 0.00, 0.25, 1.00, 1.00, 1.00, 0.00 MOSFET_TEMPERATURES_WHILE_CHARGING = 70, 75 MAX_CHARGE_CURRENT_T_MOSFET_FRACTION = 1.00, 0.00 MOSFET_TEMPERATURES_WHILE_DISCHARGING = 70, 75 MAX_DISCHARGE_CURRENT_T_MOSFET_FRACTION = 1.00, 0.00 USE_BMS_DVCC_VALUES = False
| Parameter | Beschreibung |
|---|---|
| BMS_TYPE = Jkbms_pb | Verwendeter Batterietreiber. Für JK Inverter BMS mit RS485. |
| BATTERY_ADDRESSES = 0x00 | RS485-Adresse des BMS. Standardmäßig Adresse 0. |
| BATTERY_CAPACITY = 324 | Nennkapazität des Akkus in Ah. Wird für SoC-Berechnungen verwendet. |
| MAX_BATTERY_CHARGE_CURRENT = 150.0 | Maximal erlaubter Ladestrom in Ampere. |
| MAX_BATTERY_DISCHARGE_CURRENT = 150.0 | Maximal erlaubter Entladestrom in Ampere. |
| MIN_CELL_VOLTAGE = 2.850 | Untere Zellspannungsgrenze. Unterhalb dieses Wertes wird die Entladeleistung reduziert. |
| MAX_CELL_VOLTAGE = 3.490 | Obere Zellspannungsgrenze. Oberhalb dieses Wertes wird die Ladeleistung reduziert. |
| FLOAT_CELL_VOLTAGE = 3.410 | Zellspannung während der Erhaltungsladung. |
| SOC_RESET_CELL_VOLTAGE = 3.490 | Zellspannung ab der der Ladezustand auf 100 % zurückgesetzt werden darf. |
| SOC_RESET_AFTER_DAYS = 30 | Erzwingt spätestens nach 30 Tagen eine erneute Kalibrierung des SoC. |
| CELL_VOLTAGES_WHILE_CHARGING | Spannungsstützpunkte für die Ladeleistungsbegrenzung. |
| MAX_CHARGE_CURRENT_CV_FRACTION | Faktor des maximalen Ladestroms für die jeweiligen Spannungen. |
| CELL_VOLTAGES_WHILE_DISCHARGING | Spannungsstützpunkte für die Entladeleistungsbegrenzung. |
| MAX_DISCHARGE_CURRENT_CV_FRACTION | Faktor des maximalen Entladestroms für die jeweiligen Spannungen. |
| TEMPERATURES_WHILE_CHARGING | Temperaturstützpunkte für die Ladeleistungsbegrenzung. |
| MAX_CHARGE_CURRENT_T_FRACTION | Faktor des maximalen Ladestroms abhängig von der Batterietemperatur. |
| TEMPERATURES_WHILE_DISCHARGING | Temperaturstützpunkte für die Entladeleistungsbegrenzung. |
| MAX_DISCHARGE_CURRENT_T_FRACTION | Faktor des maximalen Entladestroms abhängig von der Batterietemperatur. |
| MOSFET_TEMPERATURES_WHILE_CHARGING | Temperaturgrenzen der BMS-MOSFETs beim Laden. |
| MAX_CHARGE_CURRENT_T_MOSFET_FRACTION | Ladestrombegrenzung in Abhängigkeit der MOSFET-Temperatur. |
| MOSFET_TEMPERATURES_WHILE_DISCHARGING | Temperaturgrenzen der BMS-MOSFETs beim Entladen. |
| MAX_DISCHARGE_CURRENT_T_MOSFET_FRACTION | Entladestrombegrenzung in Abhängigkeit der MOSFET-Temperatur. |
| USE_BMS_DVCC_VALUES = False | Verwendet die Werte aus dieser Konfiguration und nicht die vom BMS gemeldeten DVCC-Werte. |
Diese Konfiguration ist für einen Verbund aus zwei JK-BMS Batterien ausgelegt. Die Kommunikation erfolgt wahlweise über CAN oder RS485. In der hier gezeigten Konfiguration wird CAN verwendet.
[DEFAULT] LOGGING = INFO ; can0=VE-CAN, can1=BMS-CAN CAN_PORT = can0, can1 BMS_TYPE = Jkbms_Can BATTERY_ADDRESSES = 0x00, 0x01 MAX_BATTERY_CHARGE_CURRENT = 120.0 MAX_BATTERY_DISCHARGE_CURRENT = 120.0 MIN_CELL_VOLTAGE = 3.00 MAX_CELL_VOLTAGE = 3.46 FLOAT_CELL_VOLTAGE = 3.41 SOC_RESET_CELL_VOLTAGE = 3.445 ;SOC_RESET_AFTER_DAYS = 1 CURRENT_REPORTED_BY_BMS = -300, 300 CURRENT_MEASURED_BY_USER = -300, 300 CELL_VOLTAGES_WHILE_DISCHARGING = 3.0, 3.050, 3.10, 3.15, 3.2 MAX_DISCHARGE_CURRENT_CV_FRACTION = 0, 0.1, 0.5, 1, 1 BLOCK_ON_DISCONNECT = True CHARGE_MODE = 1 CVCM_ENABLE = True CVL_CONTROLLER_MODE = 1 CVL_ICONTROLLER_FACTOR = 0.2 TEMPERATURES_WHILE_CHARGING = 0, 2, 5, 10, 40, 45, 50, 55 MAX_CHARGE_CURRENT_T_FRACTION = 0.00, 0.25, 0.50, 1.00, 1.00, 0.50, 0.25, 0.00 TEMPERATURES_WHILE_DISCHARGING = -10, 0, 5, 10, 40, 45, 50, 55 MAX_DISCHARGE_CURRENT_T_FRACTION = 0.00, 0.25, 0.50, 1.00, 1.00, 0.50, 0.25, 0.00 MOSFET_TEMPERATURES_WHILE_CHARGING = 70, 80, 90 MAX_CHARGE_CURRENT_T_MOSFET_FRACTION = 1.00, 0.25, 0.00 MOSFET_TEMPERATURES_WHILE_DISCHARGING = 70, 80, 90 MAX_DISCHARGE_CURRENT_T_MOSFET_FRACTION = 1.00, 0.25, 0.00 HISTORY_ENABLE = True BATTERY_CELL_DATA_FORMAT = 1 TEMPERATURE_SOURCE_BATTERY = 1, 2, 3, 4
| Parameter | Beschreibung |
|---|---|
| LOGGING = INFO | Standard-Loglevel. Zeigt wichtige Status- und Fehlermeldungen an ohne die Logdatei unnötig aufzublähen. |
| CAN_PORT = can0, can1 | Überwachte CAN-Interfaces. can0 entspricht dem VE.Can-Port des Cerbo GX, can1 einem zusätzlichen BMS-CAN-Interface. |
| BMS_TYPE = Jkbms_Can | Auswahl des verwendeten Treibers. Für JK-BMS über CAN. Bei RS485 stattdessen Jkbms_pb verwenden. |
| BATTERY_ADDRESSES = 0x00, 0x01 | Zu überwachende Batterien. Adresse 0 ist der Master, Adresse 1 der Slave. Beide Batterien werden zu einem gemeinsamen Speicher zusammengefasst. |
| MAX_BATTERY_CHARGE_CURRENT = 120.0 | Maximal zulässiger Ladestrom für den gesamten Batterieverbund. |
| MAX_BATTERY_DISCHARGE_CURRENT = 120.0 | Maximal zulässiger Entladestrom für den gesamten Batterieverbund. |
| MIN_CELL_VOLTAGE = 3.00 | Untere Zellspannungsgrenze. Unterhalb dieses Wertes wird die Entladeleistung reduziert. |
| MAX_CELL_VOLTAGE = 3.46 | Obere Zellspannungsgrenze für die Ladeleistungsregelung. |
| FLOAT_CELL_VOLTAGE = 3.41 | Zellspannung für die Erhaltungsladung. |
| SOC_RESET_CELL_VOLTAGE = 3.445 | Ab dieser Zellspannung darf der SoC auf 100 % synchronisiert werden. |
| CURRENT_REPORTED_BY_BMS | Referenzpunkte für die vom BMS gemeldeten Ströme. |
| CURRENT_MEASURED_BY_USER | Tatsächlich gemessene Ströme. Kann zur Kalibrierung der Strommessung verwendet werden. |
| CELL_VOLTAGES_WHILE_DISCHARGING | Zellspannungsstützpunkte für die Entladestrombegrenzung. |
| MAX_DISCHARGE_CURRENT_CV_FRACTION | Faktor des maximalen Entladestroms an den jeweiligen Spannungsstützpunkten. |
| BLOCK_ON_DISCONNECT = True | Sperrt Laden und Entladen bei Kommunikationsverlust zum BMS. |
| CHARGE_MODE = 1 | Aktiviert die dynamische Ladebegrenzung durch dbus-serialbattery. |
| CVCM_ENABLE = True | Aktiviert die dynamische Regelung der maximalen Ladespannung (CVL). |
| CVL_CONTROLLER_MODE = 1 | Aktiviert den erweiterten CVL-Regler. |
| CVL_ICONTROLLER_FACTOR = 0.2 | Verstärkungsfaktor des CVL-Reglers. Kleinere Werte reagieren langsamer, größere aggressiver. |
| TEMPERATURES_WHILE_CHARGING | Temperaturstützpunkte für die Ladeleistungsbegrenzung. |
| MAX_CHARGE_CURRENT_T_FRACTION | Zulässiger Anteil des Ladestroms in Abhängigkeit von der Batterietemperatur. |
| TEMPERATURES_WHILE_DISCHARGING | Temperaturstützpunkte für die Entladeleistungsbegrenzung. |
| MAX_DISCHARGE_CURRENT_T_FRACTION | Zulässiger Anteil des Entladestroms in Abhängigkeit von der Batterietemperatur. |
| MOSFET_TEMPERATURES_WHILE_CHARGING | Temperaturgrenzen der Leistungsmosfets beim Laden. |
| MAX_CHARGE_CURRENT_T_MOSFET_FRACTION | Ladestrombegrenzung abhängig von der MOSFET-Temperatur. |
| MOSFET_TEMPERATURES_WHILE_DISCHARGING | Temperaturgrenzen der Leistungsmosfets beim Entladen. |
| MAX_DISCHARGE_CURRENT_T_MOSFET_FRACTION | Entladestrombegrenzung abhängig von der MOSFET-Temperatur. |
| HISTORY_ENABLE = True | Aktiviert die Speicherung historischer Batteriedaten im Venus OS. |
| BATTERY_CELL_DATA_FORMAT = 1 | Überträgt Einzelzellinformationen im erweiterten Format an das Victron-System. |
| TEMPERATURE_SOURCE_BATTERY = 1, 2, 3, 4 | Verwendet alle vier vom JK-BMS gemeldeten Temperatursensoren für die Berechnung der Batterietemperatur. |
Nach Änderungen an der Konfiguration:
svc -t /service/dbus-serialbattery.ttyUSB1
Alternativ kompletten Cerbo neu starten:
reboot
tail -f /data/log/dbus-serialbattery.ttyUSB1/current
tail -100 /data/log/dbus-serialbattery.ttyUSB1/current
tail -200 /data/log/dbus-serialbattery.ttyUSB1/current
svstat /service/dbus-serialbattery.ttyUSB1
ls -l /dev/serial/by-id/
ls -l /dev/ttyUSB*
dmesg | grep ttyUSB
find /data/log -name "*serialbattery*"
Testing Jkbms_pb at address "\x00" with 115200 baud No battery recognized
Mögliche Ursachen: