JK BMS und Victron VenusOS via Bluetooth

Der Entwickler hinter dbus-serialbattery ist weiterhin fleißig am entwickeln und mittlerweile ist es möglich das JK BMS mittels Bluetooth mit dem Venus OS zu verbinden. Das Feature ist noch Beta und sollte aktuell nur verwendet werden, wenn noch keine funktionierende Hardwareverbindung mittels RS485, UART TTL oder ähnlichem besteht. Die Kabelgebundene Verbindung ist vorzuziehen!

Um das ganze einzurichten folgt man der Anleitung unter https://louisvdw.github.io/dbus-serialbattery/general/install#install-over-ssh-nightly-versionbeta-test und nutzt die Methode Install over SSH: nightly version/beta test. Dazu ist eine SSH Verbindung nötig und am Ende werden noch ein paar händische Schritte die zu erledigen sind auf der Konsole ausgegeben.

Zu beachten ist noch, das der Treiber in der default Konfiguration die Lade- (50A) und Entladeströme (60A) begrenzt. Dies kann in der Config wie in der Anleitung beschrieben geändert werden.

Die Installation gibt bei mir heute, mit einem Cerbo GX und einem Multiplus II, problemlos.

5 „Gefällt mir“

Hab das seit ein paar Tagen im Betrieb, da ich noch n bissl was Umbauen muss und Bluetooth ohne noch weitere Kabel ganz gut schien. Allerdings steigt hier und da mal das VenusOS aus, da es laut dmesg Probleme mit dem BT-Stack hat. Hab das VenusOS allerdings auch vor ein paar Tagen frisch aufgesetzt (aktuell 2.94, da mit 3.0+ BT über serialbattery noch nicht läuft).

Evtl ist das auch nur ein Problem mit der Spannungsversorgung vom Raspi, welcher aus der Not heraus aktuell ein 3A ist.

Moin zusammen ,

funktioniert das mittlerweile über bluetooth ??

Bei mir seit mehreren Wochen stabil (Raspi 4, VenusOS 3.0)

1 „Gefällt mir“

danke

ich verwende den multiplus gx. Benötige ich dann einen bluetooth Stick (usb) ? schön wenn man den victron bluetooth port verwenden könnte.

Danke für den Tip

kann mir jemand dabei helfen? Z.B. wird bei mir der ble logpfad (von dem wird geschriben - der sei auszulesen) überhaupt nicht erstellt. Wo wird den entschieden ob Daten per seriellem Kabel oder über bluetooth gelesen werden. Ich blick das nicht.

eigentlich scannt der Treiber selbständig nach einem BMS, und sollte dann zwei finden, einmal per Kabel und dann per Bluetooth. Ich würde erstmal per

Kabel in Betrieb nehmen. Wenn es dann rennt, dann mal Bluetooth versuchen.

@dv2000 hast du in deiner config.ini die Zeile mit BLUETOOTH_BMS = Jkbms_Ble [Adresse] hinzugefügt? Danach musste ich nochmal 'sh reinstall-local.sh' aufrufen, damit er die entsprechenden Services ausführt. Dann nochmal rebooten, dann gingen bei mir immerhin die Services.
Ich hab allerdings auch mit Problemen zu kämpfen. Erst hatte alles geklappt, aber ein Service startet ständig neu. :confused:

Hallo,

ich blick da nicht ganz durch. In der Anleitung steht das man trotzdem eine serielle Verbindung haben muss oder ist das falsch?

Kann ich meinen Akku nur mit Bluetooth an den Cerbo GX koppeln? Wenn ja hat jemand die Schritte parat?

Wie sieht es nach einem Update des Cerbos aus?

Ich habe für mein JK BMS entsprechend den Cerbo Raspi mit der Bluetooth Funktionalität erweitert. Anleitung ist ja wie folgt:

BLUETOOTH battery connection: There are a few more steps to complete installation.

1. Please add the Bluetooth BMS to the config file "/data/etc/dbus-serialbattery/config.ini" by adding "BLUETOOTH_BMS":

Example with 1 BMS: BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00

Example with 3 BMS: BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00,

Jkbms_Ble C8:47:8C:00:00:11, Jkbms_Ble C8:47:8C:00:00:22

If your Bluetooth BMS are nearby you can show the MAC address with "bluetoothctl devices".

2. Make sure to disable Settings -> Bluetooth in the remote console/GUI to prevent reconnects every minute.

3. Re-run "/data/etc/dbus-serialbattery/reinstall-local.sh", if the Bluetooth BMS were not added to the "config.ini " before.

Die Mac Adresse habe ich in der config.ini ergänzt und das Script nochmals laufen lassen.

root@raspberrypi2:~# /data/etc/dbus-serialbattery/reinstall-local.sh

Found 1 Bluetooth BMS in the config file!

Installing required packages...

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/all/Packages.gz.

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/Packages.gz.

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/raspberrypi2/Packages.gz.

Collected errors:

* opkg_download_backend: Failed to download https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/all/Packages.gz, wget returned 4.

* opkg_download_backend: Failed to download https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/Packages.gz, wget returned 4.

* opkg_download_backend: Failed to download https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/raspberrypi2/Packages.gz, wget returned 4.

Collected errors:

* opkg_prepare_url_for_install: Couldn't find anything to satisfy 'python3-misc'.

/data/etc/dbus-serialbattery/reinstall-local.sh: line 163: pip3: command not found

grep: /var/spool/cron/root: No such file or directory

Packages installed.

In der GUI wird aber leider das BMS nicht angezeigt, ein Test brachte folgenden Fehler:

https://github.com/Louisvdw/dbus-serialbattery/issues/13

root@raspberrypi2:~# tail -F -n 100 /data/log/dbus-blebattery.*/current | tai64nlocal

2023-08-04 17:06:52.523899500 ModuleNotFoundError: No module named 'bleak'

2023-08-04 17:06:52.721230500 Missing device address argument

2023-08-04 17:06:53.869522500 INFO:SerialBattery:Starting dbus-serialbattery

2023-08-04 17:06:53.870435500 INFO:SerialBattery:dbus-serialbattery v1.0.20230531

2023-08-04 17:06:54.089166500

2023-08-04 17:06:54.092230500 Traceback (most recent call last):

2023-08-04 17:06:54.092236500 File "/opt/victronenergy/dbus-serialbattery/dbus-serialbattery.py", line 163, in <module>

2023-08-04 17:06:54.092242500 main()

2023-08-04 17:06:54.092243500 File "/opt/victronenergy/dbus-serialbattery/dbus-serialbattery.py", line 120, in main

2023-08-04 17:06:54.092248500 from bms.jkbms_ble import Jkbms_Ble # noqa: F401

2023-08-04 17:06:54.092252500 File "/opt/victronenergy/dbus-serialbattery/bms/jkbms_ble.py", line 4, in <module>

2023-08-04 17:06:54.092315500 from bms.jkbms_brn import Jkbms_Brn

2023-08-04 17:06:54.092319500 File "/opt/victronenergy/dbus-serialbattery/bms/jkbms_brn.py", line 2, in <module>

2023-08-04 17:06:54.092324500 from bleak import BleakScanner, BleakClient

2023-08-04 17:06:54.092327500 ModuleNotFoundError: No module named 'bleak'

2023-08-04 17:06:54.278746500 Missing device address argument

2023-08-04 17:06:55.329222500 INFO:SerialBattery:Starting dbus-serialbattery

Offensichtlich scheint das Python Modul Bleak zu fehlen.

Ich habe hier eine Lösungsmöglichkeit gefunden:

https://github.com/Louisvdw/dbus-serialbattery/issues/13

Bevor ich anfange, alle Befehle einzugeben wollte ich mal fragen, ob ihr schon diesen Fehler hattet?

Leider ist die serielle Schnittstelle vom JKBMS defekt, drum bin ich auf Bluetooth angewiesen

"pip3 install bleak" sollte den Fehler beheben.

habe es probiert, es kommt aber zu einem Fehler, wer kann helfen????

root@raspberrypi2:~# python3 --version Python 3.8.13 root@raspberrypi2:~# pip3 install bleak Collecting bleak Downloading bleak-0.20.2-py3-none-any.whl (135 kB) |████████████████████████████████| 135 kB 1.2 MB/s Collecting dbus-fast<2.0.0,>=1.83.0; platform_system == "Linux" Downloading dbus_fast-1.90.2.tar.gz (66 kB) |████████████████████████████████| 66 kB 494 kB/s Installing build dependencies ... done Getting requirements to build wheel ... done ERROR: Exception: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 186, in _main status = self.run(options, args) File "/usr/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 331, in run resolver.resolve(requirement_set) File "/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 177, in resolve discovered_reqs.extend(self._resolve_one(requirement_set, req)) File "/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 333, in _resolve_one abstract_dist = self._get_abstract_dist_for(req_to_install) File "/usr/lib/python3.8/site-packages/pip/_internal/legacy_resolve.py", line 282, in _get_abstract_dist_for abstract_dist = self.preparer.prepare_linked_requirement(req) File "/usr/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 515, in prepare_linked_requirement abstract_dist = _get_prepared_distribution( File "/usr/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 95, in _get_prepared_distribution abstract_dist.prepare_distribution_metadata(finder, build_isolation) File "/usr/lib/python3.8/site-packages/pip/_internal/distributions/sdist.py", line 38, in prepare_distribution_metadata self._setup_isolation(finder) File "/usr/lib/python3.8/site-packages/pip/_internal/distributions/sdist.py", line 96, in _setup_isolation reqs = backend.get_requires_for_build_wheel() File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/wrappers.py", line 151, in get_requires_for_build_wheel return self._call_hook('get_requires_for_build_wheel', { File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/wrappers.py", line 255, in _call_hook raise BackendUnavailable(data.get('traceback', '')) pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py", line 63, in _build_backend obj = import_module(mod_path) File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 843, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/var/volatile/tmp/pip-build-env-nm3raf3o/overlay/lib/python3.8/site-packages/poetry/core/masonry/api.py", line 11, in <module> from poetry.core.factory import Factory File "/var/volatile/tmp/pip-build-env-nm3raf3o/overlay/lib/python3.8/site-packages/poetry/core/factory.py", line 15, in <module> from poetry.core.utils.helpers import combine_unicode File "/var/volatile/tmp/pip-build-env-nm3raf3o/overlay/lib/python3.8/site-packages/poetry/core/utils/helpers.py", line 20, in <module> from poetry.core.version.pep440 import PEP440Version File "/var/volatile/tmp/pip-build-env-nm3raf3o/overlay/lib/python3.8/site-packages/poetry/core/version/pep440/__init__.py", line 3, in <module> from poetry.core.version.pep440.segments import LocalSegmentType File "/var/volatile/tmp/pip-build-env-nm3raf3o/overlay/lib/python3.8/site-packages/poetry/core/version/pep440/segments.py", line 3, in <module> import dataclasses ModuleNotFoundError: No module named 'dataclasses'
vorher musste ich noch python3-pip installieren, sonst hätte obiger Befehl pip3 install bleak nicht funktioniert.
root@raspberrypi2:~# opkg install python3-pip Installing python3-xmlrpc (3.8.13) on root Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/python3-xmlrpc_3.8.13-r0_cortexa7hf-neon-vfpv4.ipk. Installing libjitterentropy2 (2.2.0) on root Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/libjitterentropy2_2.2.0-r0_cortexa7hf-neon-vfpv4.ipk. Installing libsysfs2 (2.1.0) on root Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/libsysfs2_2.1.0-r5_cortexa7hf-neon-vfpv4.ipk. Installing python3-pip (20.0.2) on root Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/python3-pip_20.0.2-r0_cortexa7hf-neon-vfpv4.ipk. Installing rng-tools (6.9) on root Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/rng-tools_6.9-r0_cortexa7hf-neon-vfpv4.ipk. Configuring libjitterentropy2. Configuring libsysfs2. Configuring rng-tools. Adding system startup for /etc/init.d/rng-tools. Starting random number generator daemon. Configuring python3-xmlrpc. Configuring python3-pip.
versions check
root@raspberrypi2:~# python -m pip --version pip 20.0.2 from /usr/lib/python3.8/site-packages/pip (python 3.8) root@raspberrypi2:~# cat /opt/victronenergy/version v3.01 Victron Energy 20230717162050

Das Installieren hat doch etwas gebracht:

root@raspberrypi2:~# /data/etc/dbus-serialbattery/reinstall-local.sh

Found 1 Bluetooth BMS in the config file!

Installing required packages...

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/all/Packages.gz.

Updated source 'all'.

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/cortexa7hf-neon-vfpv4/Packages.gz.

Updated source 'cortexa7hf-neon-vfpv4'.

Downloading https://updates.victronenergy.com/feeds/venus/release/packages/dunfell/raspberrypi2/Packages.gz.

Updated source 'raspberrypi2'.

No packages installed or removed.

Requirement already satisfied: bleak in /usr/lib/python3.8/site-packages (0.20.2)

Requirement already satisfied: dbus-fast<2.0.0,>=1.83.0; platform_system == "Linux" in /usr/lib/python3.8/site-packages (from bleak) (1.90.2)

Requirement already satisfied: async-timeout<5,>=3.0.0; python_version < "3.11" in /usr/lib/python3.8/site-packages (from bleak) (4.0.2)

Packages installed.

Installing Jkbms_Ble C8:47:XX:XX:BE:8B as dbus-blebattery.0

Stopping bluetooth: bluetoothd.

es funktioniert :-)

Hallo Leute,

danke für die Hilfe ?? . Das gab mir die richtigen Denkanstöße.

Jetzt funktioniert es wunder.

Danke,

Arno

@arnonym @launacorp @bjoernh @mcfarlan

Funktioniert die Bluetooth JK BMS Schnittstelle zuverlässig oder gibt es manchmal Verbindungsprobleme und man sollte doch stattdessen eine Kabellösung vorziehen?

Bis ich meine neuen JKs bekomme dauert es wohl noch 6-8 Wochen.

Deswegen will ich mal sehen was mit den alten JKs noch an Kommunikation so möglich ist und werde mal das connecten über Bluetooth testen.

Paar Fragen an allen die hier das mit dem Cerbo schon am laufen haben:

  • wieviele akkupacks lassen sich maximal gleichzeitig per BT verbinden? Ich habe 5x16s.

  • was passiert wenn das Bluetooth unterbricht und schaltet der Cerbo dann das DVCC aus?

  • auf GitHub heißt es man soll zusätzlich per Kabel verbinden, wozu denn das?

Mit neueren Hardwarerevisionen ab 11.XW kann es zu dem Problem kommen, dass plötzlich der SOC/Spannung/Strom usw. 0 Anzeigen. Dies lag/liegt an einem leicht geänderten Bluetooth Protokoll seitens JK. Bei mir trat das Problem erst nach Monaten auf. Es wurde bereits gefixt und ist im aktuellen dev branch behoben (kann über das installer Script ausgewählt werden). Sollte jemand das Probleme haben, hier ist der entsprechende Bugreport dazu: https://github.com/Louisvdw/dbus-serialbattery/issues/716

1 „Gefällt mir“

Ich habe auch Hardware 11.XW. Einige Werte bleiben 0. Ist in der aktullen nightly der Fix drin und hatdas jemand mal getestet?

Und noch ne Frage. Wo stell ich die kapazität ein? in der Config.ini finde ich nichts und in der Remoteconsole auch nicht. Im BMS ist sie ja schon eingestellt.

Kann ich das install script nochmal starten und die nightly drüber installieren?