Bluetooth BMS vs Raspberry

Diskuze, rady, nápady, postřehy v oblasti alternativních zdrojů energie, elektrorozvodů, elektrozařízení, regulace, komponent a úsporných spotřebičů.
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Ahoj,
má tu někdo funkční připojení na BMS přes bluetooth z linuxu?

Nějak mi to nechce šlapat, mám BMS z Mivvy - https://www.mivvyenergy.cz/cs/pro-clank ... tooth.html
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Mam RPi 4B a bluetooth spojeni se 3-mi BMS pres bluetooth (cca 4 metry daleko) soucasne mi slape naprosto stabilne (mesic v kuse, pak delam system upgrade, takze reboot RPi). Na RPi mam Raspberry Pi OS (tj. lehce upraveny Debian 11). BMS 2 typu: Smart ANT BMS (standardni BL spojeni; komplet cteni kazde 2 sekundy) a JK BMS (low energy BL spojeni - BLE; subscription info kazdych 0.5 sekundy ze 2 BMS). Na 2.4GHz pasmu s 802.11n provozuji jen IOT zarizeni (cca 100), wireless zrouti (pocitace, telefony) jedou na 5GHz pasmu takze bluetooth ma prostor s minimem kolizi.

Funguje ti bluetooth spojeni mezi telefonem s BMS stabilne bez problemu? Pokud ano, tak by RPi nemel mit take zadny problem, pokud by jsi tam nemel nejak nemocny bluetooth chip.
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Přes telefon mi to jede, Raspberry se přes BT taktéž k BMS připojí. Problém mám asi v SW, se kterým to čtu. Co používáš na čtení hodnot? Já našel a zkoušel jen jbdtool. Ještě mě napadlo, že v aplikaci v Androidu jsem nastavil pro přístuop na BMS heslo a možná ho SW neumí zadat (v parametrech nikde zadat nelze).
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Ja si to ctu sam z jednoducheho skirptu v Pythonu, knihovna bluepy. Jinak pres command line lze BLE zkouset pomoci gatttool. Pokud nenajdes popis protokolu co tam je nebo hotovy sw, tak na Android telefonu s funkcni aplikaci pro BMS si muzes snadno udelat sniffing bluetooth. Za pomoci te aplikace najit vse co se ti hodi (vcetne nastavovani parametru, povolovani/zakazovani charge/discharge, triggerovani balancingu atd.). Zatim jsem nevidel zadne BMS co by melo nejak ucinne zabezpeceny ten bluetooth protokol, hesla pro pripojeni/administraci se enforcovaly jen v tech aplikacich a kdyz ne, tak sly normalne v plain textu.
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Ten skript by šel nasdílet? Třeba to bude standard :D No, za vyzkoušení to stojí
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Home made knihovna pro cteni z jkbms a k ni odpovidajici bmsstate objekt. Musel jsem je gzipnout protoze py priloha neni povolena :-) Pipem si dotahnes bluepy knihovnu. Jo a je to Python 3. Pouziti je pak jednoduche:

import bmsstate
import jkbms

JK_BMS_MAC3 = "C8:47:8C:E2:D0:48"
jkbms3 = jkbms.JkBMS(JK_BMS_MAC3)
jkbms3.initialize()

pak jen pravidelne volas:

candidateState3 = jkbms3.bms_read_status()
// vrati None pokud nejsou validni data, jinak posledni platne data
Přílohy
jkbms.py.gz
(2.87 KiB) Staženo 124 x
bmsstate.py.gz
(1009 bajtů) Staženo 110 x
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Bohužel Python vůbec neznám, zkusil jsem následovně:
test.py
import bmsstate
import jkbms

JK_BMS_MAC3 = "A4:C1:37:00:7E:08"
jkbms3 = jkbms.JkBMS(JK_BMS_MAC3)
jkbms3.initialize()


python test.py
Traceback (most recent call last):
File "/scripts/bms/forum/test.py", line 6, in <module>
jkbms3.initialize()
File "/scripts/bms/forum/jkbms.py", line 44, in initialize
self.sendCommand(COMMAND_REQ_DEVICE_INFO)
File "/scripts/bms/forum/jkbms.py", line 126, in sendCommand
self.connect()
File "/scripts/bms/forum/jkbms.py", line 73, in connect
serviceJkbms = self.device.getServiceByUUID(serviceJkbmsUuid)
NameError: name 'serviceJkbmsUuid' is not defined

BT se připojí v pohodě:
root@raspberrypi:~# bluetoothctl
Agent registered
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
[CHG] Device A4:C1:37:00:7E:08 Connected: no
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
[CHG] Device A4:C1:37:00:7E:08 Connected: no
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
[CHG] Device A4:C1:37:00:7E:08 Connected: no
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
[CHG] Device A4:C1:37:00:7E:08 Connected: no
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
[CHG] Device A4:C1:37:00:7E:08 Connected: no
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

To nebude kompatibilni, asi jiny protokol. Uz ten prefix v te BT MAC je uplne jiny vendor, navic jsem ho v registrovanych prefixech vyrobcu BT chipu vubec nenasel. Uz to zacina byt podobne jako u cinskych klonu invertoru, baterii, ktere maji nejake nahodne fake BAR a QR kody, ze kterych se neda zjistit vubec nic.
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Tobě jde s Rpi BMS spárovat?

Mě to hlásí toto:
pair A4:C1:37:00:7E:08
Attempting to pair with A4:C1:37:00:7E:08
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device A4:C1:37:00:7E:08 Connected: no


Ale když dám connect tak se napojí:
[bluetooth]# connect A4:C1:37:00:7E:08
Attempting to connect to A4:C1:37:00:7E:08
[CHG] Device A4:C1:37:00:7E:08 Connected: yes
Connection successful
[CHG] Device A4:C1:37:00:7E:08 ServicesResolved: yes
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

hciconfig -a
hci0: Type: Primary Bus: UART
BD Address: B8:27:EB:57:4D:C2 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN ISCAN
RX bytes:25068 acl:149 sco:0 events:1685 errors:0
TX bytes:36154 acl:149 sco:0 commands:1204 errors:0
Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'raspberrypi'
Class: 0x3c0000
Service Classes: Rendering, Capturing, Object Transfer, Audio
Device Class: Miscellaneous,
HCI Version: 4.1 (0x7) Revision: 0x1fc
LMP Version: 4.1 (0x7) Subversion: 0x2209
Manufacturer: Broadcom Corporation (15)

hcitool dev
Devices:
hci0 B8:27:EB:57:4D:C2

bt-device -l
Added devices:
LH-SP20S005 (A4:C1:37:00:7E:08)
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Parovat jdou jen zarizeni na plnohodnotnem Bluetooth protokolu. Nektere BMS umi jen Bluetooth Low Energy (BLE) a ten princip parovani nepouziva a takove se nedaji sparovat. V takovem pripade pouzij gattool:

gatttool -i hci0 -I -t random

a pak v interternim shellu provedes nejdrive pripojeni:
connect A4:C1:37:00:7E:08
mtu 131

(default mtu je male to vetsina bms nepouziva protze i pri tomto max mtu projdou 3-4 datove ramce na jednu stavovou informaci)

pak muzes dotazovat a odesilat requesty

primary
char-desc

a pak dle specifickych uuid co ma kazdy jine:

char-desc 0x000e 0x0013
char-write-req 0x0013 0100
char-write-req 0x0012 aa5590eb97000000000000000000000000000011

ukoncis to pomoci

disconnect
exit
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Dostal jsem se až sem, ale dál mi to není vůbec jasné, je to postup podle nějakého manuálu?

root@raspberrypi:~# gatttool -i hci0 -I -t random
[ ][LE]> connect A4:C1:37:00:7E:08
Attempting to connect to A4:C1:37:00:7E:08
Connection successful
[A4:C1:37:00:7E:08][LE]> mtu 131
MTU was exchanged successfully: 23
[A4:C1:37:00:7E:08][LE]> primary
attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x000b uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0x000e uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x000f, end grp handle: 0x0016 uuid: 0000ff00-0000-1000-8000-00805f9b34fb
attr handle: 0x0017, end grp handle: 0x001a uuid: 0000fa00-0000-1000-8000-00805f9b34fb
[A4:C1:37:00:7E:08][LE]> char-desc
handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0002, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0004, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0006, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb
handle: 0x0008, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0009, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x000b, uuid: 00002902-0000-1000-8000-00805f9b34fb
handle: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x000e, uuid: 00002a50-0000-1000-8000-00805f9b34fb
handle: 0x000f, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0011, uuid: 0000ff01-0000-1000-8000-00805f9b34fb
handle: 0x0012, uuid: 00002902-0000-1000-8000-00805f9b34fb
handle: 0x0013, uuid: 00002901-0000-1000-8000-00805f9b34fb
handle: 0x0014, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0015, uuid: 0000ff02-0000-1000-8000-00805f9b34fb
handle: 0x0016, uuid: 00002901-0000-1000-8000-00805f9b34fb
handle: 0x0017, uuid: 00002800-0000-1000-8000-00805f9b34fb
handle: 0x0018, uuid: 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0019, uuid: 0000fa01-0000-1000-8000-00805f9b34fb
handle: 0x001a, uuid: 00002901-0000-1000-8000-00805f9b34fb
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Toto znamena, ze bluetooth mezi RPi a BMS funguje. Takze problem je v komunikacnim protokolu. Pokud jsi aspon trochu programatorsky zdatny, tak cesta je udelat sniffing bluetooth komunikace na smart phone s funkcni aplikaci a pak podle toho komunikovat pres BLE. Musi se tam najit command co requestuje status a pak kde chodi odpovidajici data.
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Oki, programovat trochu umím, jen pro BT jsem nikdy nic nedělal. Ale předpokládám, že to bude podobný princip jako u sítě, nemáš doporučení na sniffovací nástroj na tyto účely? Něco jako tcpdump :D :D
Uživatelský avatar
Archie
Příspěvky: 11
Registrován: čtv črc 14, 2022 3:13 pm
Bydliště: u Kladna

Re: Bluetooth BMS vs Raspberry

Příspěvek od Archie »

Pro BT lze dělat packet capture pomocí Wireshark https://www.wireshark.org.

Bye A.
Bye A.

12x 465kWp, ISolar SMX II 5.6, LiFePo4 6,4+16,4kW
pikodrak
Příspěvky: 11
Registrován: pon črc 18, 2022 1:37 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od pikodrak »

Nj, ale ten není pro android, kde mě funguje appka :) Zkusím pogooglit
sisdale
Příspěvky: 260
Registrován: sob črc 02, 2022 9:13 pm
Bydliště: středočeský kraj, 400 m n.m.

Re: Bluetooth BMS vs Raspberry

Příspěvek od sisdale »

Pro sniffing BT komunikace na Androidu neni potreba zadna aplikace. Potrebujes jen aplikaci toho BMS. Postup je zhruba takovyto:
  • nejlepsi je na zacatku nejdrive restartovat telefon - ale nemusi to byt nutne
  • povolit na telefonu docasne developer option - u me na Androidu 12 se to dela tak ze kliknes 7x cislo sestaveni systemu
  • nejdrive je nutno BT na chvili vypnout - ikona nebo v menu
  • v developer option se povoli Bluetooth HCI (tak se to jmenuje u me na ver 12, mozna tam bude neco jako sniff bluetooth nebo tak
  • v developer option taky povolit ladeni pres USB
  • zpatky zapnout Bluetooth
  • nyni nepripojovat jine BT zarizeni ala sluchatka a tak, at neni ve sniffingu zbytecny balast co se bude muset ignorovat
  • spustit si tu aplikaci pro BMS, sledovat chvili stavy (delat si na androidu screenshoty at se to da naparovat na komunikaci, u me se to dela kombinaci volume down+power), pak treba zmeny settingu co by te zajimaly, ale hlavne si pamatovat co jsi menil v sekvenci at pak vis, ktery prikaz co znamena
  • zase vypnout Bluetooth
  • v developer option vypnout Bluetooth HCI - u me to bylo nutne, protoze jinak to Android mel nejak v ram a nezapsal to na SD ten sniffing
  • stahnout sniffing record - soubor se jmenuje btsnoop_hci.log; na novejsich Androidech asi od 10 nahoru je soubor v zabezpecene sekci a pokud nemas rootnuty telefon, tak se k nemu dostanes pomoci Android platform-tools co nainstalujes na pocitaci
    • pripojis telefon USB kabelem s pocitacem, kde mas ty platform-tools
    • adb devices - musi tam byt videt tvuj telefon, mozna neco musis potvrdit na telefonu, aby povolil tento pocitac
    • adb bugreport bugreport - stahne to nejaky packaga ze zabezpeceneho prostoru Androidu, je to jak komprimovane jako jeden soubor
    • rozbalit stazeny bugreport a vyhledat btsnoop_hci.log , u me byva v ceste FS/data/log/bt/btsnoop_hci.log
  • no a ted uz staci jen ten btsnoop_hci.log otevrit treba ve Wiresharku, v pripade BLE protokolu te zajimaji pakety typu ATT protocol, specialne pak Rcvd + Send write commandy, kousek pred nimi se taky dozvis, ktere charakteristiky GAT BLE se oteviraji a meni se jim nejake vlastnosti (to je to co muzes pak zkouset z toho gatttool co uz jsi zkousel vyse), jde tam zkusebne odesilat pakety, prijimat a tak. Jakmile na to prijdes, staci to pak prepsat do tveho oblibeneho jazyka co umi BLE nebo ma nejakou knihovnu pro BLE. V tech status informacich odeslanych z BMS v tom Wiresharku pak identifikfieldy co te zajimaji, kodovani byva ruzne, treba nejdrive ASCII, pak binary. Vetsina BMS co jsem videl byly binary a jsou to 2 byty na hodnotu, ve vsech pripadech to byly celociselne typy. Desetinne cisla se prenaseji jako nejaky nasobek, v pripade cell voltage to je obvykle *1000, tj. v mV
8.56 kWp - orientace JJV (160st.) sklon 23 st. - PERC, 72-half cut, bifacial
11 kW invertory - 2x Sorotec REVO II 5.5kW aka Easun iGrid VE II 5.5kW v paralelenim 1f zapojeni
33 kWh LiFePO4 baterie - cylindrical pack 100 AH a dve prismatic REPT 280 AH v 16-ti clankovem provedeni
plně elektrický dům, více v mém domovském vlákně zde
smartyn34
Příspěvky: 38
Registrován: pon bře 31, 2014 9:53 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od smartyn34 »

Tak mi to nedalo a vyzkoušel jsem také přečtení dat a zde je výsledek:
Přes sniffing BT z telefonu jde krásně najít které pakety se posílají tam a zpět:
Výstřižek1.PNG
Vyčíst příkaz pro čtení dat, já našel dvě varianty, jeden pro čtení základních informací a jeden pro napětí jednotlivých článků myslím.
Výstřižek2.PNG
Výstřižek2.PNG (66.97 KiB) Zobrazeno 1242 x
Teď už by neměl být problém jednotlivá data získat: např. :
Byte 5-6 = 5638 *0.01 (napětí baterie)
Byte 7-8 = 64699 (tady by měl být proud, ale někdy to nesedí)
Byte 9-10 = 21614 * 0.01 (zbytek kapacity)
Byte 11-12 = 22000 * 0*01 (celková kapacita)
Byte 13-14 = 117 (počet cyklů)
dál zatím nevím.
Uživatelský avatar
humpataa
Příspěvky: 2
Registrován: ned říj 02, 2022 11:42 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od humpataa »

Hello,

excuse me for stepping into this, have found this via Google searching for a away to access my Jk-Bms from Raspberry. Thank you for the code ... but I cannot get it to connect to the BMS.

It is a JK-B2A24S15P, I can connect to it using the app just fine. It is being listed when I do "sudo hcitool lescan" with the address "C8:47:8C:E4:57:FB". Yet, the connecting fails:

ERROR:root:JkBMS C8:47:8C:E4:57:FB: connection failed to C8:47:8C:E4:57:FB, re-try

I have printed out the exception but it doesn't help:

Unexpected err=BTLEDisconnectError('Failed to connect to peripheral C8:47:8C:E4:57:FB, addr type: public', {'rsp': ['stat'], 'state': ['disc'], 'mtu': [0], 'sec': ['low']}), type(err)=<class 'bluepy.btle.BTLEDisconnectError'>

What could be the reason?
Any help is appreciated!
sisdale píše:Home made knihovna pro cteni z jkbms a k ni odpovidajici bmsstate objekt. Musel jsem je gzipnout protoze py priloha neni povolena :-) Pipem si dotahnes bluepy knihovnu. Jo a je to Python 3. Pouziti je pak jednoduche:

import bmsstate
import jkbms

JK_BMS_MAC3 = "C8:47:8C:E2:D0:48"
jkbms3 = jkbms.JkBMS(JK_BMS_MAC3)
jkbms3.initialize()

pak jen pravidelne volas:

candidateState3 = jkbms3.bms_read_status()
Uživatelský avatar
humpataa
Příspěvky: 2
Registrován: ned říj 02, 2022 11:42 am

Re: Bluetooth BMS vs Raspberry

Příspěvek od humpataa »

Hi again, I am using the code from @sisdal with my JK-BMS - got BLE working now - but I am getting errors...

First I had to replace

Kód: Vybrat vše

serviceJkbms = self.device.getServiceByUUID(serviceJkbmsUuid)
with

Kód: Vybrat vše

serviceJkbms = self.device.getServiceByUUID(btle.AssignedNumbers.genericAccess)
Because serviceJkbmsUuid was unknown?!

Second I had to change some things to make it work further:

Kód: Vybrat vše

self.device.setMTU(331)
serviceJkbms = self.device.getServiceByUUID(btle.AssignedNumbers.genericAccess)

# Connect to the notify service
serviceNotifyUuid = 'ffe0'
serviceNotify = self.device.getServiceByUUID(serviceNotifyUuid)

# Get the handles that we need to talk to
# Read
characteristicConnectionUuid = 'ffe1'
characteristicConnection = serviceNotify.getCharacteristics(characteristicConnectionUuid)[0]
self.handleConnection = characteristicConnection.getHandle()
It now connects (I can hear the BMS beeping) and receives data - but parsing fails:

Kód: Vybrat vše

ERROR:root:JkBMS C8:47:8C:E4:57:FB: received packet with invaid CRC8: b'55aaeb9003ba4a4b2d4232413234533135500000000031302e585700000031302e303800000010880d00050000004a4b2d4232413234533135500000000031323334000000000000000000000000323230393231000032303432313032313937003030303000496e707574205573657264617461000071000000000000000000'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'00000000000000000000000000000000000000000000'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'00000000000000000000000000000000000000000072'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received packet with invaid CRC8: b'55aaeb9001ba58020000280a00005a0a0000100e0000de0d00000a00000000000000000000000000000000000000c4090000a86100001e0000003c000000f04902002c0100003c0000003c000000d0070000bc02000058020000bc0200005802000038ffffff9cffffff84030000bc0200000800000001000000010000000100'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'000070820300dc050000b80b00000000000000000000'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
ERROR:root:JkBMS C8:47:8C:E4:57:FB: received missaligned data: b'00000000000000000000000000000000000000000006'
Any advice is appreciated!
:P

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek