Benachrichtigungen
Alles löschen

Script um Seplos V2/10E über Bluetooth/BLE auszulesen

2 Beiträge
1 Benutzer
0 Reactions
69 Ansichten
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 329
Themenstarter  

Da ich meine 3 Seplos (V2/10E) zusammengeschlossen habe, kann ich die Zellenspannungen der Master Box nicht mehr auslesen. Dieses Problem haben m.M.n. ja alle, die Seplos' in Master/Slave Kombination betreiben.

Ich habe meinen Linux Server gleich 1 Meter neben den Boxen stehen, darum würde ich gerne über ein Script die Infos per Bluetooth abholen.
Das funktioniert aktuell z.b. schon mit JK-BMS (mpp-solar) und einem JBD (eigenes Script und gatttool), für Seplos fehlt mir einfach noch die Aufschlüsselung der UUID's:

[bluetooth]# connect 60:6E:41:26:XX:XX
Attempting to connect to 60:6E:41:26:XX:XX
[CHG] Device 60:6E:41:26:XX:XX Connected: yes
Connection successful
[NEW] Primary Service (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service0001
        00001801-0000-1000-8000-00805f9b34fb
        Generic Attribute Profile
[NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service0001/char0002
        00002a05-0000-1000-8000-00805f9b34fb
        Service Changed
[NEW] Primary Service (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f
        0000ff00-0000-1000-8000-00805f9b34fb
        Unknown
[NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0010
        0000ff01-0000-1000-8000-00805f9b34fb
        Unknown
[NEW] Descriptor (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0010/desc0012
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0013
        0000ff02-0000-1000-8000-00805f9b34fb
        Unknown
[NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0015
        0000ff03-0000-1000-8000-00805f9b34fb
        Unknown
[NEW] Descriptor (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0015/desc0017
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[NEW] Characteristic (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0018
        0000ff04-0000-1000-8000-00805f9b34fb
        Unknown
[NEW] Descriptor (Handle 0x0000)
        /org/bluez/hci0/dev_60_6E_41_26_XX_XX/service000f/char0018/desc001a
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[CHG] Device 60:6E:41:26:XX:XX UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 60:6E:41:26:XX:XX UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 60:6E:41:26:XX:XX UUIDs: 0000ff00-0000-1000-8000-00805f9b34fb
[CHG] Device 60:6E:41:26:XX:XX ServicesResolved: yes
[CHG] Device 60:6E:41:26:XX:XX Appearance: 0x03c0

Kann mir hierzu jemand einen Tip geben? Gibt's vielleicht schon ein Github Projekt (egal welche Programmiersprache) das per BLE Daten von den Seplos abholt?
Ich suche nun schon eine Weile, habe aber keinen passenden Code gefunden.

Müsste sich ja mit gatttool und dem Wissen, welches Service welche Daten hält, recht einfach umsetzten lassen.

PS: Bitte keine Verweise auf irgendwelche Projekte mit RS485 - die kenne ich alle aber die Schnittstellen sind bei mir nicht frei. Es muss sich definitiv über BT machen lassen.

Dieses Thema wurde geändert Vor 3 Wochen von riogrande75

24kWP an 2x FSP 10kW,Solax X3-G2 und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
Zitat
riogrande75
(@riogrande75)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 329
Themenstarter  

So, bin nun einen Schritt weiter.
Am Android Handy habe ich den Bluetooth Verkehr der Seplos-App mit den Boxen mitgetraced (=> btsnoop_hci.log).
Nach Analyse der daraus gewonnenen Daten habe ich die relvanten BT Kommandos extrahiert und schicke diese per Linux CLI mit dem gatttool z.b. zur Master Box:

root@hphost:/home/riogrande75# gatttool -b 60:6E:41:26:XX_XX-I
[60:6E:41:26:XX_XX][LE]> connect
Attempting to connect to 60:6E:41:26:XX_XX
Connection successful
[60:6E:41:26:XX_XX][LE]> char-write-req 0x0012 0100
Characteristic value was written successfully
[60:6E:41:26:XX_XX][LE]> primary
attr handle: 0x0001, end grp handle: 0x0003 uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x0004, end grp handle: 0x000e uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x000f, end grp handle: 0x001a uuid: 0000ff00-0000-1000-8000-00805f9b34fb
[60:6E:41:26:XX_XX][LE]> mtu 512
MTU was exchanged successfully: 512
[60:6E:41:26:XX_XX][LE]> char-write-req 0x0014 7E100046610000FFDA0D
Characteristic value was written successfully
Notification handle = 0x0011 value: 7e 14 00 61 00 00 6a 00 00 10 0c dd 0c dd 0c de 0c de 0c de 0c de 0c dd 0c de 0c
Notification handle = 0x0011 value: de 0c de 0c dd 0c de 0c dd 0c dd 0c df 0c de 06 0b 8a 0b 84 0b 86 0b 86 0b b7 0b 8e 00 00 14 96
Notification handle = 0x0011 value: 44 1c 06 6d 60 02 6e 6d 60 00 75 03 e8 14 98 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Notification handle = 0x0011 value: 00 00 00 00 00 00 00 10 03 08 00 00 00 00 00 00 00 00 00 00 00 00 2c 71 0d
[60:6E:41:26:XX_XX][LE]> disconnect

Ich frage also mit dem "char-write-req" auf handle 0x0014 z.b. den "function code 61H (Get single machine data)" ab.
In den "Notification handle" Meldungen sieht man die Antwort vom BMS darauf. Codierung kann man aus der angehängten Seplos BT Protocolbeschreibung entnehmen.

Ich werde nun noch ein kleines Programm schreiben, welches das zyklisch als Task ausführt und die Zell-Daten per MQTT an meinen HA sendet.

24kWP an 2x FSP 10kW,Solax X3-G2 und AxpertMAXII 8000 mit 70kWh LiFePo4
123solar, meterN und EVSE-WiFi
Kein Support per PN


   
AntwortZitat
Teilen: