Repository navigation
|
Hello. Regards. |
Replies: 1 comment 41 replies
|
No, most likely nobody over the air — it is something on your own Pi. You are running /* net/bluetooth/l2cap_core.c, l2cap_chan_connect() */
if (cid && __l2cap_get_chan_by_dcid(conn, cid)) { /* cid = 0x0004, the ATT channel */
hci_conn_drop(hcon);
err = -EBUSY;So the host already has a link to the BMS and something local already owns its ATT channel — normally bluetoothd, i.e. Home Assistant's own Bluetooth integration or another add-on that connected to the BMS. Unlike the BlueZ/D-Bus stack, which multiplexes one ATT channel between its clients, bluek needs CID 4 for itself, so it cannot share. That also explains the other line: a peripheral stops advertising while it is connected, so the scan does not see it. One cause, two symptoms — not range, not a phone. Check on the host: Two fixes: keep HA's Bluetooth integration away from that MAC (ignore the discovered device), or set I have also changed bluek: it now drops the offending link via mgmt before retrying, and reports |





Those frames are exactly what was needed, thank you. They decode cleanly, and every field agrees with the others:
batmon now has a wired type for this BMS,
braunpwr_uart, tested against your frames. It's on master and will be in the next release. It needs a 3.3 V USB-TTL adapter on the same header your ESP32 uses now: GND, TX↔RX crossed, VIN not connected.If …