1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
"""
Scan/Discovery
--------------
Example showing how to scan for BLE devices.
Updated on 2019-03-25 by hbldh <henrik.blidh@nedomkull.com>
"""
import argparse
import asyncio
from bleak import BleakScanner
class Args(argparse.Namespace):
macos_use_bdaddr: bool
services: list[str]
async def main(args: Args):
print("scanning for 5 seconds, please wait...")
devices = await BleakScanner.discover(
return_adv=True,
service_uuids=args.services,
cb={"use_bdaddr": args.macos_use_bdaddr},
)
for d, a in devices.values():
print()
print(d)
print("-" * len(str(d)))
print(a)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(
"--services",
metavar="<uuid>",
nargs="*",
help="UUIDs of one or more services to filter for",
)
parser.add_argument(
"--macos-use-bdaddr",
action="store_true",
help="when true use Bluetooth address instead of UUID on macOS",
)
args = parser.parse_args(namespace=Args())
asyncio.run(main(args))
|