Skip to content

Bluetooth HID Remote

This driver makes the hub act as a Bluetooth or USB HID remote — a keyboard/remote that a target device sees as its own. That lets it navigate an Apple TV, Android TV, Fire TV, or (over USB) an Xbox on devices that offer no IR receiver and no network control API.

Several backends, all presenting the same HID remote:

  • network — an ESP32 over Wi-Fi, TCP port 8080.
  • serial — an ESP32 over USB.
  • bluez — the hub’s own Bluetooth radio, via the bundled bthid_sidecar.py (Linux only).
  • mock — for testing without hardware.

Trait: proxy. For the ESP32 side, see What a proxy is and Flashing an ESP32.

  • Backendnetwork, serial, bluez, or mock.
  • For network: the ESP32’s host and port (8080).
  • For serial: the ESP32’s serial port.
CommandWhat it does
up / down / left / right / okDirectional navigation and select
back / home / menuStandard navigation keys
play_pause / …Transport keys
powerPower key
textSend a string of text
pair / stop_pairing / unpairManage the Bluetooth pairing
rawSend a raw HID report

It sends canonical remote buttons as HID reports and reports hid.connected, hid.disconnected, hid.pairing, and hid.sent events.