#!/usr/bin/python import dbus bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager") def extract_objects(object_list): list = "" for object in object_list: val = str(object) list = list + val[val.rfind("/") + 1:] + " " return list def extract_uuids(uuid_list): list = "" for uuid in uuid_list: if (uuid.endswith("-0000-1000-8000-00805f9b34fb")): if (uuid.startswith("0000")): val = "0x" + uuid[4:8] else: val = "0x" + uuid[0:8] else: val = str(uuid) list = list + val + " " return list adapter_list = manager.ListAdapters() for i in adapter_list: adapter = dbus.Interface(bus.get_object("org.bluez", i), "org.bluez.Adapter") print "[ " + i + " ]" properties = adapter.GetProperties() for key in properties.keys(): value = properties[key] if (key == "Devices"): list = extract_objects(value) print " %s = %s" % (key, list) else: print " %s = %s" % (key, value) try: device_list = properties["Devices"] except: device_list = [] for n in device_list: device = dbus.Interface(bus.get_object("org.bluez", n), "org.bluez.Device") print " [ " + n + " ]" properties = device.GetProperties() for key in properties.keys(): value = properties[key] if (key == "Nodes"): list = extract_objects(value) print " %s = %s" % (key, list) elif (key == "UUIDs"): list = extract_uuids(value) print " %s = %s" % (key, list) elif (key == "Class"): print " %s = 0x%06x" % (key, value) else: print " %s = %s" % (key, value) try: node_list = properties["Nodes"] except: node_list = [] for x in node_list: node = dbus.Interface(bus.get_object("org.bluez", x), "org.bluez.Node") print " [ " + x + " ]" properties = node.GetProperties() for key in properties.keys(): print " %s = %s" % (key, properties[key]) print