Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save EncodeTheCode/6245af2b2f47724bb9db0d91c7aac79c to your computer and use it in GitHub Desktop.
Save EncodeTheCode/6245af2b2f47724bb9db0d91c7aac79c to your computer and use it in GitHub Desktop.
import warnings
warnings.filterwarnings("ignore")
import asyncio
from bleak import BleakScanner
def format_bytes(b):
return ' '.join(f'{byte:02X}' for byte in b)
async def main():
print("🔍 Scanning for Bluetooth LE devices (5 seconds)...")
devices = await BleakScanner.discover(timeout=5.0)
if not devices:
print("❌ No BLE devices found.")
return
for i, d in enumerate(devices, 1):
print(f"\n🔹 Device #{i}")
print(f" Name : {d.name or '[No Name]'}")
print(f" Address : {d.address}")
print(f" RSSI : {d.rssi} dBm")
# Advertisement data
ad = d.metadata.get("advertisement_data")
if ad:
# Advertised services
if ad.service_uuids:
print(" Services :")
for uuid in ad.service_uuids:
print(f" - {uuid}")
# Manufacturer data
if ad.manufacturer_data:
print(" Manufacturer Data:")
for key, value in ad.manufacturer_data.items():
print(f" - ID {key}: {format_bytes(value)}")
# Service data
if ad.service_data:
print(" Service Data:")
for uuid, data in ad.service_data.items():
print(f" - {uuid}: {format_bytes(data)}")
else:
print(" No advertisement data available.")
asyncio.run(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment