I’m trying to switch to using pydbus (instead of deprecated dbus-python, which the bluez examples are based on). I’m running on stretch with bluez 5.43. My code is at the bottom (and here -> https://gist.github.com/travisgriggs/d8e14dcccf46751804456dc74da1e5e6). I’m running into a problem when I try to RegisterAdvertisement. What I can’t seem to discern is what is different between this and the old approach. The bluetooth driver fails around advertising:c:175 DBusMessageIter iter; const char *msg_type; if (!g_dbus_proxy_get_property(proxy, "Type", &iter)) return false; The g_dbus_proxy_get_property() call fails. What I don’t understand though is this. If I modify my program to NOT RegisterAdvertisement(), but just sit there with the advertisement object on the bus, I can do the following: $ sudo busctl get-property :1.5 /nic/twigpilot org.bluez.LEAdvertisement1 Type s “peripheral" So I *am* able to get the Type using busctl. Why is that bluetoothd cannot? Using busctl introspect, I see that the pydbus variant automagically makes a lot more available than the dubs-python variant did. Any hints? Pointers? Help? TIA —— #!/usr/bin/env python3 import pydbus from gi.repository import GLib class Advertisement(object): """ <node> <interface name="org.bluez.LEAdvertisement1"> <method name="Release"> <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> </method> <annotation name="org.freedesktop.DBus.Properties.PropertiesChanged" value="const"/> <property name="Type" type="s" access="read"/> <property name="ServiceUUIDs" type="as" access="read"/> <property name="ManufacturerData" type="a{sv}" access="read"/> <property name="SolicitUUIDs" type="as" access="read"/> <property name="ServiceData" type="a{sv}" access="read"/> <property name="IncludeTxPower" type="b" access="read"/> </interface> </node> """ def __init__(self, bus): self.Type = 'peripheral' self.ServiceUUIDs = [] self.ManufacturerData = {} self.SolicitUUIDs = [] self.ServiceData = {} self.IncludeTxPower = False bus.register_object('/nic/twigpilot', self, None) def Release(self): print('{}: Advertisement Released!'.format(self)) def main(): bus = pydbus.SystemBus() adaptor = bus.get('org.bluez', '/org/bluez/hci0') adaptor.Powered = True adaptor.Alias = 'SeeMe' advertisement = Advertisement(bus) advertisement.IncludeTxPower = True #adaptor.RegisterAdvertisement('/nic/twigpilot', {}) loop = GLib.MainLoop() try: loop.run() except KeyboardInterrupt: loop.quit() if __name__ == '__main__': main()-- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html