I'm need write data to Bluetooth device with DBus and Bluez using Python dbus library.
But only know how to connect and disconnect device:
import dbus
system_bus = dbus.SystemBus()
device = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60')
object = dbus.Interface(device, dbus_interface='org.bluez.Device1')
object.Connect()
object.Disconnect()
That's method description from DFeet app:
<method name="WriteValue">
<arg name="value" type="ay" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
</method>
UPDATE: Added code which write converted bytes
import dbus
import binascii
system_bus = dbus.SystemBus()
device = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60')
object = dbus.Interface(device, dbus_interface='org.bluez.Device1')
object.Connect()
device_2 = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60/service000c/char000d')
object_2 = dbus.Interface(device_2, dbus_interface='org.bluez.GattCharacteristic1')
#bytes = dbus.ByteArray(binascii.unhexlify("025a06000000"))
bytes = binascii.unhexlify("025a06000000")
object_2.WriteValue(bytes,{})
object.Disconnect()
After some tests with BtleJuice Framework can confirm this is enough for bytes sending:
bytes = binascii.unhexlify("025a06000000")
object_2.WriteValue(bytes,{})
In methods described like this:
<method name="WriteValue">
<arg name="value" type="ay" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
</method>
At least it work in my case.