I've found the excellent answer in How can I listen for ‘usb device inserted’ events in Linux, in Python? to get basic D-Bus connectivity and read properties. I assumed it would be easy to modify properties but I can't seem to get that working.
pdevice.SetProperty("thing", dbus.Boolean(0))
gives the unenlightening
DBusException: org.freedesktop.Hal.TypeMismatch: Type mismatch setting property thing on device with id /org/freedesktop/Hal/devices/usb_device_fce_d092_35703301370925
Any ideas what I'm doing wrong? I've looked at the API doc and JFGI and can't find any examples. I can set the property using hal-set-property.