#reverse engineer bluetooth low energy (BLE) protocol

1 messages · Page 1 of 1 (latest)

royal current
#

Hi, let's say I have a bluetooth BLE device and want to integrate it with Home Assistant, how can I reverse engineer its protocol by using the Android app the device comes with?

junior ingot
#

likely not at all

#

if its bluetooth you can kinda connect it to a device and then try to manually debug the capabilities according to the protocol spec

royal current
#

how do I do so?
I have a BLE sensor

#

also have the HCI log from when I interact with the sensor in Android

#

I see a few Send Read By Group Type Request

#

for example```
234 113.647272 TexasInstrum_****** ******** ATT 32 Rcvd Read By Type Response, Attribute List Length: 3, Manufacturer Name String, IEEE 11073-20601 Regulatory Certification Data List, PnP ID

royal current
#

reverse engineer bluetooth protocol

#

reverse engineer bluetooth low energy (BLE) protocol

#

for now I cannot seems to have Bleak discover the device. it just does not show in the discovered device list

royal current
#

update: bleak was able to see the device, with another laptop. But the example read model number script timeout and prints nothing:

import asyncio
from bleak import BleakClient

address = "84:72:93:**:**:**"
MODEL_NBR_UUID = "2A24"

async def main(address):
    async with BleakClient(address) as client:
        model_number = await client.read_gatt_char(MODEL_NBR_UUID)
        print("Model Number: {0}".format("".join(map(chr, model_number))))

asyncio.run(main(address))
royal current
royal current
#

so the value seems to be read from Recv Handle Value Notification