Victron Geräte Verbindung via Bluetooth

@Juergen Erst mal danke für die vorarbeit.
@range4200t
Hallo Jürgen hallo Stefan Ihr habt ja anscheinend Victron über BLE laufen.
Ich habe das Heute mal bei mir Installiert.
so wie Stefan das gemacht hat. sudo pip3 install victron_ble --break-system-packages
das hat auch ohne Error funktioniert.
dann abe ich von meinem 230V Lader und von meinem Ladebooster die Mac und KEY eingegeben. und ich bekomme nur eine Fehlermeldung.
Wenn ich den Befehl in der konsole eingebe bekomme ich folgende Meldung.

pi@pekaway:~ $ sudo timeout -s SIGINT 5s /usr/local/bin/victron-ble read MAC@KEY
INFO:victron_ble.scanner:Reading data for ['MAC']
ERROR:dbus_fast.message_bus:A message handler raised an exception: 'BLEDevice' object has no attribute 'rssi'
Traceback (most recent call last):
  File "src/dbus_fast/message_bus.py", line 797, in dbus_fast.message_bus.BaseMessageBus._process_message
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1058, in _parse_msg
    self._run_advertisement_callbacks(
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1101, in _run_advertisement_callbacks
    callback(device_path, device.copy())
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/scanner.py", line 233, in _handle_advertising_data
    self.call_detection_callbacks(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/scanner.py", line 238, in call_detection_callbacks
    callback(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
    self.callback(device, data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 113, in callback
    "rssi": ble_device.rssi,
            ^^^^^^^^^^^^^^^
AttributeError: 'BLEDevice' object has no attribute 'rssi'
ERROR:dbus_fast.message_bus:A message handler raised an exception: 'BLEDevice' object has no attribute 'rssi'
Traceback (most recent call last):
  File "src/dbus_fast/message_bus.py", line 797, in dbus_fast.message_bus.BaseMessageBus._process_message
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1058, in _parse_msg
    self._run_advertisement_callbacks(
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1101, in _run_advertisement_callbacks
    callback(device_path, device.copy())
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/scanner.py", line 233, in _handle_advertising_data
    self.call_detection_callbacks(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/scanner.py", line 238, in call_detection_callbacks
    callback(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
    self.callback(device, data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 113, in callback
    "rssi": ble_device.rssi,
            ^^^^^^^^^^^^^^^
AttributeError: 'BLEDevice' object has no attribute 'rssi'
ERROR:dbus_fast.message_bus:A message handler raised an exception: 'BLEDevice' object has no attribute 'rssi'
Traceback (most recent call last):
  File "src/dbus_fast/message_bus.py", line 797, in dbus_fast.message_bus.BaseMessageBus._process_message
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1058, in _parse_msg
    self._run_advertisement_callbacks(
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1101, in _run_advertisement_callbacks
    callback(device_path, device.copy())
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/scanner.py", line 233, in _handle_advertising_data
    self.call_detection_callbacks(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/scanner.py", line 238, in call_detection_callbacks
    callback(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
    self.callback(device, data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 113, in callback
    "rssi": ble_device.rssi,
            ^^^^^^^^^^^^^^^
AttributeError: 'BLEDevice' object has no attribute 'rssi'
ERROR:dbus_fast.message_bus:A message handler raised an exception: 'BLEDevice' object has no attribute 'rssi'

Ahtdf, [03.08.2025 13:50]
Traceback (most recent call last):
  File "src/dbus_fast/message_bus.py", line 797, in dbus_fast.message_bus.BaseMessageBus._process_message
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1058, in _parse_msg
    self._run_advertisement_callbacks(
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1101, in _run_advertisement_callbacks
    callback(device_path, device.copy())
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/scanner.py", line 233, in _handle_advertising_data
    self.call_detection_callbacks(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/scanner.py", line 238, in call_detection_callbacks
    callback(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
    self.callback(device, data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 113, in callback
    "rssi": ble_device.rssi,
            ^^^^^^^^^^^^^^^
AttributeError: 'BLEDevice' object has no attribute 'rssi'
ERROR:dbus_fast.message_bus:A message handler raised an exception: 'BLEDevice' object has no attribute 'rssi'
Traceback (most recent call last):
  File "src/dbus_fast/message_bus.py", line 797, in dbus_fast.message_bus.BaseMessageBus._process_message
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1058, in _parse_msg
    self._run_advertisement_callbacks(
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/manager.py", line 1101, in _run_advertisement_callbacks
    callback(device_path, device.copy())
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/bluezdbus/scanner.py", line 233, in _handle_advertising_data
    self.call_detection_callbacks(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/bleak/backends/scanner.py", line 238, in call_detection_callbacks
    callback(device, advertisement_data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 39, in _detection_callback
    self.callback(device, data)
  File "/usr/local/lib/python3.11/dist-packages/victron_ble/scanner.py", line 113, in callback
    "rssi": ble_device.rssi,
            ^^^^^^^^^^^^^^^
AttributeError: 'BLEDevice' object has no attribute 'rssi'

Aborted!

Hat einer eine Ahnung wo der Fehler liegt.
Ich soll das nächste Woche bei einem Kollegen installieren, aber bei der Fehlermeldung hat das keinen Sinn :wink:
Gruß Arno

Hallo Arno, kannst du mal prüfen, ob der Pfad richtig ist ?

" Dadurch ändert sich der Pfad von victron-ble zu /home/pi/.local/bin/victron-ble . Bedenkt das falls ihr meinen Flow verwendet."

Gruß, Stefan

Ich prüfe das, danke

victron_ble erwartet ein Attribut rssi aber bleak liefert dieses Attribut nicht mehr (siehe bleak changelog Version 0.20.0)

Gibt auch schon ein Github Issue dafür: Clarification on 'BLEDevice' object has no attribute 'rssi' error during victron-ble read · Issue #75 · keshavdv/victron-ble · GitHub

Hier im scanner.py in Zeile 113:

Also könntest du versuchen entweder bleak auf eine Version vor 0.20.0 (pip show bleak um die Version zu prüfen) zu downgraden, oder die scanner.py umzuschreiben, sowas wie
"rssi": getattr(ble_device, "rssi", None),
dann wird ein “None” geliefert, wenn das Attribut nicht vorhanden ist. Nachhaltiger wäre aber eher, wenn der Developer von victron_ble das direkt anpassen würde.

Danke @Vincent für die Antwort, das du für soetwas noch Zeit findest :wink: Daumen hoch dafür. Dann muss ich mal schauen was ich da finden kann.
Mich wundert nur das andere funtionieren, hab ich zuviele Updates gemacht??
Gruß Arno

Zumindest ist das das, was ich aus der Fehlermeldung lese :smiley:
Vielleicht schafft aber auch ein Update von Bleak Abhilfe, müsstest du mal testen. Es gibt dazu auch zwei verschiedene Python Umgebungen, einmal für sudo und einmal für den Nutzer Pi.

Wenn du ohne sudo installierst, ist das Modul in /home/pi/.local/lib/python3.11/site-packages,
wenn du mit sudo installierst in /usr/local/lib/python3.11/dist-packages.

Je nachdem wie du dann victron_ble startest wird es aus dem einen oder aus dem anderen Ordner gesucht.

@Vincent
ich habe den Text so übernommen, jetzt funktioniert es.
Zeile 113 "rssi": getattr(ble_device, "rssi", None),
Danke!!!

1 Like

Beim Kollegen hats auch funktioniert, 2 Solarregler und ein Smart Shunt. :+1:

1 Like

Hallo zusammen :slight_smile:

Kann es sein, dass beim Victron MPPT Smart Solar keine Panel Volt per Bluetooth übertragen wird? zumindest kann ich das nicht finden:Sonst habe ich es dank der Hilfe von super hinbekommen. Danke dafür.

payload: object
battery_charging_current: 5.7
battery_voltage: 13.38
charge_state: “bulk”
charger_error: “no_error”
model_name: “SmartSolar Charger MPPT 100/30”
solar_power: 79
yield_today: 60

des Weiteren habe ich immer das Problem, dass bei der Starter Batterie immer °C angezeigt wird:
(msg.payload.payload.starter_voltage)

Starter Battery
12.77°C

du hast in einer TextNode soetwas stehen

wenn du das °C wegmachst und ein V dann sieht die ganze Sache anders aus :wink:

1 Like

habs hinbekommen,

kann es ein, dass wenn man zu viele Daten per bluetooth abruft und die dann auch immer an Display sendet, wie Batteriestatus, Solarladung etc. das Display langsamer reagiert?

Ich hatte jetzt schon mehrmals im connection timeout als Nachricht bekommen.

Hängt das evtl. damit zusammen? So wie ich das verstehe, werden ja nur wenige Nachrichten an den Touchscreen geschickt