336a62a795
BLEAK Is by far the best/most effective library I have seen for it so far.
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import gatt
|
|
|
|
manager = gatt.DeviceManager(adapter_name='hci0')
|
|
|
|
class KanoWand(gatt.Device):
|
|
def services_resolved(self):
|
|
super().services_resolved()
|
|
print("Grabbing services")
|
|
print(self.is_connected())
|
|
print(self.services)
|
|
|
|
for service in self.services:
|
|
print("FOUND SERVICE")
|
|
# print(service)
|
|
# print(service.device)
|
|
print(service.uuid)
|
|
print(service.characteristics)
|
|
for char in service.characteristics:
|
|
print("FOUND CHARACTERISTIC")
|
|
print(char.uuid)
|
|
print(char.read_value())
|
|
# device_information_service = next(s for s in self.services if s.uuid == '0000180a-0000-1000-8000-00805f9b34fb')
|
|
#
|
|
# firmware_version_characteristic = next(
|
|
# c for c in device_information_service.characteristics
|
|
# if c.uuid == '00002a26-0000-1000 -8000-00805f9b34fb')
|
|
#
|
|
# firmware_version_characteristic.read_value()
|
|
|
|
def characteristic_value_updated(self, characteristic, value):
|
|
print("Firmware version:", value.decode("utf-8"))
|
|
|
|
|
|
device = KanoWand(mac_address='e3:ae:cd:af:28:e2', manager=manager)
|
|
device.connect()
|
|
manager.run()
|
|
manager.stop() |