I see you've started to incorporate BLE support. Wondering if you can add basic Bluetooth LE support for actual interactions. Shouldn't be too hard.
Basically you would scan for bluetooth devices, then ask it which characteristics you can get notifications from, let the user choose, then do something with it. You could extend things further letting them actually inspect the written values for devices that support it.
For instance, the Griffin Wireless PowerMate Bluetooth uses Bluetooth LE to send one of six things to the computer... rotate left/right, press, press-and-hold, press-and-hold-and-rotate left/right. By pairing to, then tracking those BLE notifications, you would implicitly support that device 'natively'.
Same could be done for any BLE device. This would also let people make custom BTT controllers with things like Arduinos and such.
Even better, if we let people create BLE device definitions, like for that aforementioned Griffin, then people could share the devices and get automatic understanding of the specific device (i.e. instead of characteristic 241-t316va-521-bla bla... they get 'rotate right'.
Going a step further, you could also let it send BLE messages to control external devices. This too can be done quite easily. For instance, the PunchThrough LightBlue app lets you 'interrogate' a device, which it can then emulate simply by publishing the same values as the original. So... you could clone in a BLE remote, then trigger BLE signals from BTT.
That latter part--going back out--would just be a nice-to-have but may be out of scope for this. Still, it's so close to what the first part of this is, it may be a freebie.
For that matter, I'd be more than happy to chip in and code the BLE portions if you could then integrate them into your app. Definitely something I'd use and happy to help out. LMK.
Anyway, something to consider. Thanks!
M