25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
import asyncio
|
|
from bleak import BleakScanner, BleakError
|
|
|
|
# bunch of random prefixes for testing
|
|
## VENDOR_PREFIXES = ['00:25:DF', '00:58:28', '00:C0:D4', '84:70:03', 'C0:1C:6A', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0B', '77', '99', '0A', '0B', '0C', '0D', '0E', '0F', 'AB', 'C0']
|
|
# live
|
|
VENDOR_PREFIXES = ['00:25:DF', '00:58:28', '00:C0:D4', '84:70:03']
|
|
|
|
async def main():
|
|
print("Scanning for BLE devices...")
|
|
try:
|
|
devices = await BleakScanner.discover()
|
|
print(f"Found {len(devices)} devices:")
|
|
filtered_devices = [device for device in devices if any(device.address.upper().startswith(prefix) for prefix in VENDOR_PREFIXES)]
|
|
if filtered_devices:
|
|
for device in filtered_devices:
|
|
print(f"MAC Address: {device.address}, Name: {device.name}")
|
|
else:
|
|
print("No devices found with the specified vendor prefixes.")
|
|
except BleakError as e:
|
|
print(f"Error: {e}")
|
|
print("Make sure Bluetooth is enabled and a Bluetooth adapter is present.")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |