Victron Geräte Verbindung via Bluetooth

Hallo zusammen,

hier meine Lösung für 2 Orion Ladebooster & 1 SmartSolar Solarlader:

Als Erstes victron-ble installieren (Command: sudo pip3 install victron_ble)
nicht wie auf der Seite beschrieben (Command: sudo pip install victron_ble).

Die MAC & und den KEY holt man aus der Victron Handy App:

[{"id":"edeb94a459c4553a","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"c38dcd2e2cda9c9a","type":"exec","z":"edeb94a459c4553a","command":"sudo timeout -s SIGINT 5s /usr/local/bin/victron-ble read MAC@KEY","addpay":false,"append":"","useSpawn":"true","timer":"","winHide":false,"oldrc":false,"name":"Exec","x":483,"y":960,"wires":[["47e797498ec6a66a"],[],[]]},{"id":"47e797498ec6a66a","type":"json","z":"edeb94a459c4553a","name":"victron-ble to json","property":"payload","action":"","pretty":false,"x":753,"y":940,"wires":[["03f801b572c50c68","619ef791d348f7fe","4ca85cf56a483f15","e0e28e2e5e57f82d","49474ff81c8e6391","58f81426ff7f434d","523e042131eda60a","a231060727585c46"]]},{"id":"03f801b572c50c68","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":1,"width":0,"height":0,"name":"name","label":"name","format":"{{msg.payload.name}}","layout":"row-spread","className":"","x":923,"y":940,"wires":[]},{"id":"619ef791d348f7fe","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":3,"width":0,"height":0,"name":"off_reason","label":"off_reason","format":"{{msg.payload.payload.off_reason}}","layout":"row-spread","className":"","x":963,"y":980,"wires":[]},{"id":"4ca85cf56a483f15","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":4,"width":0,"height":0,"name":"charge_state","label":"charge_state","format":"{{msg.payload.payload.charge_state}}","layout":"row-spread","className":"","x":963,"y":1020,"wires":[]},{"id":"e0e28e2e5e57f82d","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":5,"width":0,"height":0,"name":"charger_error","label":"charger_error","format":"{{msg.payload.payload.charger_error}}","layout":"row-spread","className":"","x":983,"y":1060,"wires":[]},{"id":"49474ff81c8e6391","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":6,"width":0,"height":0,"name":"input_voltage","label":"input_voltage","format":"{{msg.payload.payload.input_voltage}}","layout":"row-spread","className":"","x":963,"y":1100,"wires":[]},{"id":"58f81426ff7f434d","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":7,"width":0,"height":0,"name":"output_voltage","label":"output_voltage","format":"{{msg.payload.payload.output_voltage}}","layout":"row-spread","className":"","x":983,"y":1140,"wires":[]},{"id":"1773f670b5ae478c","type":"exec","z":"edeb94a459c4553a","command":"sudo timeout -s SIGINT 5s /usr/local/bin/victron-ble read MAC@KEY","addpay":false,"append":"","useSpawn":"true","timer":"","winHide":false,"oldrc":false,"name":"Exec","x":483,"y":1280,"wires":[["6dad29d6e2292204"],[],[]]},{"id":"6dad29d6e2292204","type":"json","z":"edeb94a459c4553a","name":"victron-ble to json","property":"payload","action":"","pretty":false,"x":753,"y":1260,"wires":[["63c1ac9b0781eeb9","5fb875a3c4a9f481","d56f9a0b8cd174c1","d96939b7a3ba91aa","f1040b9fc28dc401","83dbbf31241b3dc0","80a62e080d613705","413838399840a05e"]]},{"id":"63c1ac9b0781eeb9","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":1,"width":0,"height":0,"name":"name","label":"name","format":"{{msg.payload.name}}","layout":"row-spread","className":"","x":923,"y":1260,"wires":[]},{"id":"5fb875a3c4a9f481","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":3,"width":0,"height":0,"name":"off_reason","label":"off_reason","format":"{{msg.payload.payload.off_reason}}","layout":"row-spread","className":"","x":963,"y":1300,"wires":[]},{"id":"d56f9a0b8cd174c1","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":4,"width":0,"height":0,"name":"charge_state","label":"charge_state","format":"{{msg.payload.payload.charge_state}}","layout":"row-spread","className":"","x":963,"y":1340,"wires":[]},{"id":"d96939b7a3ba91aa","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":5,"width":0,"height":0,"name":"charger_error","label":"charger_error","format":"{{msg.payload.payload.charger_error}}","layout":"row-spread","className":"","x":983,"y":1380,"wires":[]},{"id":"f1040b9fc28dc401","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":6,"width":0,"height":0,"name":"input_voltage","label":"input_voltage","format":"{{msg.payload.payload.input_voltage}}","layout":"row-spread","className":"","x":963,"y":1420,"wires":[]},{"id":"83dbbf31241b3dc0","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":7,"width":0,"height":0,"name":"output_voltage","label":"output_voltage","format":"{{msg.payload.payload.output_voltage}}","layout":"row-spread","className":"","x":983,"y":1460,"wires":[]},{"id":"c5b27ecbf34124ce","type":"exec","z":"edeb94a459c4553a","command":"sudo timeout -s SIGINT 5s /usr/local/bin/victron-ble read MAC@KEY","addpay":false,"append":"","useSpawn":"true","timer":"","winHide":false,"oldrc":false,"name":"Exec","x":483,"y":1600,"wires":[["a20ee3da2233cea1"],[],[]]},{"id":"a20ee3da2233cea1","type":"json","z":"edeb94a459c4553a","name":"victron-ble to json","property":"payload","action":"","pretty":false,"x":753,"y":1580,"wires":[["2944ef54220a1aec","07a8bd22dd63a654","34e333c4d98c4d1a","ae7834c68bb5eba8","9ffd7f0dae427792","fa677b2e9b5405f2","48d99b1728b24af2","9c0eaa4a9c26b610","cd5bb3e2b4cb8b5d","6d201dad7418b5e1"]]},{"id":"2944ef54220a1aec","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":1,"width":0,"height":0,"name":"name","label":"name","format":"{{msg.payload.name}}","layout":"row-spread","className":"","x":923,"y":1580,"wires":[]},{"id":"07a8bd22dd63a654","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":3,"width":0,"height":0,"name":"yield_today","label":"yield_today","format":"{{msg.payload.payload.yield_today}}","layout":"row-spread","className":"","x":963,"y":1620,"wires":[]},{"id":"34e333c4d98c4d1a","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":4,"width":0,"height":0,"name":"charge_state","label":"charge_state","format":"{{msg.payload.payload.charge_state}}","layout":"row-spread","className":"","x":963,"y":1660,"wires":[]},{"id":"ae7834c68bb5eba8","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":5,"width":0,"height":0,"name":"charger_error","label":"charger_error","format":"{{msg.payload.payload.charger_error}}","layout":"row-spread","className":"","x":983,"y":1700,"wires":[]},{"id":"9ffd7f0dae427792","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":6,"width":0,"height":0,"name":"battery_charging_current","label":"battery_charging_current","format":"{{msg.payload.payload.battery_charging_current}}","layout":"row-spread","className":"","x":1043,"y":1740,"wires":[]},{"id":"fa677b2e9b5405f2","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":7,"width":0,"height":0,"name":"battery_voltage","label":"battery_voltage","format":"{{msg.payload.payload.battery_voltage}}","layout":"row-spread","className":"","x":983,"y":1780,"wires":[]},{"id":"48d99b1728b24af2","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":8,"width":0,"height":0,"name":"solar_power","label":"solar_power","format":"{{msg.payload.payload.solar_power}}","layout":"row-spread","className":"","x":963,"y":1820,"wires":[]},{"id":"9c0eaa4a9c26b610","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":9,"width":0,"height":0,"name":"external_device_load","label":"external_device_load","format":"{{msg.payload.payload.external_device_load}}","layout":"row-spread","className":"","x":1023,"y":1860,"wires":[]},{"id":"523e042131eda60a","type":"function","z":"edeb94a459c4553a","name":"set global","func":"global.set(\"Booster1ChargeState\", msg.payload.payload.charge_state);\nglobal.set(\"Booster1ChargerError\", msg.payload.payload.charger_error);\nglobal.set(\"Booster1InputVoltage\", msg.payload.payload.input_voltage);\nglobal.set(\"Booster1OutputVoltage\", msg.payload.payload.output_voltage);\nglobal.set(\"Booster1OffReason\", msg.payload.payload.off_reason);\nglobal.set(\"Booster1ModelName\", msg.payload.payload.model_name);\nglobal.set(\"Booster1Name\", msg.payload.name);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":703,"y":1000,"wires":[[]]},{"id":"80a62e080d613705","type":"function","z":"edeb94a459c4553a","name":"set global","func":"global.set(\"Booster2ChargeState\", msg.payload.payload.charge_state);\nglobal.set(\"Booster2ChargerError\", msg.payload.payload.charger_error);\nglobal.set(\"Booster2InputVoltage\", msg.payload.payload.input_voltage);\nglobal.set(\"Booster2OutputVoltage\", msg.payload.payload.output_voltage);\nglobal.set(\"Booster2OffReason\", msg.payload.payload.off_reason);\nglobal.set(\"Booster2ModelName\", msg.payload.name);\nglobal.set(\"Booster2ModelName\", msg.payload.payload.model_name);\nglobal.set(\"Booster2Name\", msg.payload.name);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":703,"y":1320,"wires":[[]]},{"id":"cd5bb3e2b4cb8b5d","type":"function","z":"edeb94a459c4553a","name":"set global","func":"global.set(\"Solar1ChargeState\", msg.payload.payload.yield_today);\nglobal.set(\"Solar1ChargerError\", msg.payload.payload.charge_state);\nglobal.set(\"Solar1InputVoltage\", msg.payload.payload.charger_error);\nglobal.set(\"Solar1OutputVoltage\", msg.payload.payload.battery_charging_current);\nglobal.set(\"Solar1OffReason\", msg.payload.payload.battery_voltage);\nglobal.set(\"Solar1OffReason\", msg.payload.payload.solar_power);\nglobal.set(\"Solar1OffReason\", msg.payload.payload.external_device_load);\nglobal.set(\"Solar1ModelName\", msg.payload.payload.model_name);\nglobal.set(\"Solar1Name\", msg.payload.name);\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":703,"y":1640,"wires":[[]]},{"id":"5d1f483343f2aa36","type":"delay","z":"edeb94a459c4553a","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":343,"y":1060,"wires":[["c38dcd2e2cda9c9a","1773f670b5ae478c","c5b27ecbf34124ce"]]},{"id":"a231060727585c46","type":"ui_text","z":"edeb94a459c4553a","group":"5bffe643c0265073","order":2,"width":0,"height":0,"name":"model_name","label":"model_name","format":"{{msg.payload.payload.model_name}}","layout":"row-spread","className":"","x":963,"y":1180,"wires":[]},{"id":"413838399840a05e","type":"ui_text","z":"edeb94a459c4553a","group":"372cf487192acefe","order":2,"width":0,"height":0,"name":"model_name","label":"model_name","format":"{{msg.payload.payload.model_name}}","layout":"row-spread","className":"","x":963,"y":1500,"wires":[]},{"id":"6d201dad7418b5e1","type":"ui_text","z":"edeb94a459c4553a","group":"756b51c7eebf76d1","order":2,"width":0,"height":0,"name":"model_name","label":"model_name","format":"{{msg.payload.payload.model_name}}","layout":"row-spread","className":"","x":963,"y":1900,"wires":[]},{"id":"5bffe643c0265073","type":"ui_group","name":"Booster1","tab":"a101d9ff5688fa9e","order":4,"disp":true,"width":"6","collapse":false,"className":""},{"id":"372cf487192acefe","type":"ui_group","name":"Booster2","tab":"a101d9ff5688fa9e","order":5,"disp":true,"width":"6","collapse":false,"className":""},{"id":"756b51c7eebf76d1","type":"ui_group","name":"Solar1","tab":"a101d9ff5688fa9e","order":10,"disp":true,"width":"6","collapse":false,"className":""},{"id":"a101d9ff5688fa9e","type":"ui_tab","name":"Victron BLE","icon":"mi-usb","order":7,"disabled":false,"hidden":false}]

Den obigen Code in den Flow BLE connections importieren und an diesen timestamp anhängen.

Von hier (Ausgang timestamp)

nach hier (Eingang delay 5s)

In allen 3 Exec nodes muss noch die jeweilig MAC (Format: 1A:2B:3C:4D:5E:6F) und KEY eingegeben werden (siehe oben).


Im Dashboard müsste ein zusätzlicher tab node Victron BLE erzeugt worden sein, wie hier zu sehen.

Verbesserungsvorschläge sind ausdrücklich willkommen :smiley:

5 Likes

Mega dickes Lob!
Hab lange nach einer solchen Lösung gesucht, das spart einen mega Aufwand und löst viele Probleme mit den USB Ports bei VE.direkt

Traurigerweise bin ich in meiner Entscheidung für den neuen Van von Victron zu Ecoflow (Power Hub) gewechselt und kann die schöne Lösung hier nicht mehr verwenden. (Und habe dort wieder das gleiche Problem :smiley: )
Wenn ich Zeit finde probiere ich es noch an meinem alten Bus aus. Dieser basiert noch auf Victron Smart Geräten :smiley:

Grüße

1 Like

Oh Mann … klingen tut es ja soweit einfach :+1:t3: Ich hoffe ich kriege das auch hin, wenn der Core da ist. Neuling auf dem Gebiet :blush::face_with_hand_over_mouth:

@Juergen wie hast du denn das paket installiert?
mit “pip install victron_ble” geht es nicht.
mit sudo apt install victron_ble" kommt “Unable to locate package victron_ble”:

versuch mal:

pip3 install victron_ble

OK so konnte ich es installieren:

sudo pip3 install victron_ble --break-system-packages

Wenn ich nun im Terminal die exec Zeile mit ausgefüllten MAC@KEY eingebe, kommt folgendes:

image

die MAC muss so aussehen:

 F1:4D:B4:33:B2:E8@KEY

@Juergen
Dann bekomme folgenden Fehler:

hast du mal ein

victron-ble discover

gemacht ?

warum hast du –break-system-packages angehängt ?

sonst kommt “local package not found”

Jetzt geht es. es hat eine Zahl im Encryption Key gefehlt, somit kann das HEX Argument nicht vollständig aufgelöst werden.
Das liegt daran, dass die Zeichenkette eine ungerade Anzahl von Ziffern enthält.

Glückwunsch :+1::+1::+1::+1::+1::+1::+1:

Ich würde diesen Parameter nur im äußersten Notfall verwenden.

In den meisten Fällen funktioniert es auch, wenn man mit venv ein eigenes Python Environment erstellt, was unabhängig von den Systempackages ist.

Ich hab das bei mir als root (also wirklich als root eingeloggt und nicht mit sudo) gemacht und konnte victron_ble ohne –break-system-packages installieren.

Allerdings hab ich auch noch VanPI V 1.1.2b

Hallo Jürgen, für root ist mir kein Passwort bekannt.
Wie sollte das Standard PW hierzu sein?

Hallo, das mit venv hatte ich in der Vergangenheit bereits mit der Installation des Truma Service probiert, was aber nicht funktioniert hatte. Vince hatte mir dann das mit dem –break-system-packages vorgeschlagen, mit dem es dann funktioniert hatte.

Moin Stefan,
als user pi einloggen dann:

sudo su
passwd

Hallo Jürgen, leider funktioniert das nicht.
Ich setze ein neues SU Passwort:

Dann probiere ich mich als root an zu melden, was aber scheitert:
image

check mal bitte die Datei /etc/ssh/sshd_config und füge PermitRootLogin yes ein

#PermitRootLogin prohibit-password
PermitRootLogin yes