Jon 96b5884a87 Add double/long press, redesign UI to v0.3 with circular d-pad
- Double press and long press detection per button (5 buttons × 3 event
  types = 15 distinct BTHome events)
- New circular d-pad UI: large ring with chevron arrows, numbered buttons
  (1=centre, 2=up, 3=down, 4=left, 5=right) outside/inside the ring
- Bluetooth icon asset (bluetooth_10x10.png) in top-left via canvas_draw_icon
- Back arrow icon (Pin_back_arrow_10x8.png) bottom-right as exit hint
- Version v0.3 bottom-left; direction + event label centred when active
- Thread-safe timer callbacks via view_dispatcher_send_custom_event

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYNXvRg4xjHHE9oPH9kYYU
2026-06-29 14:48:18 +01:00
2026-05-02 22:37:20 +01:00
2026-05-02 22:37:20 +01:00

BT Home Controller in Bluetooth menu BT Home Controller app UI

This application turns the Flipper Zero into a BTHome beacon, and can be used to integrate the Flipper with home automation systems that support BTHome, such as Home Assistant.

BTHome is an open standard for broadcasting sensor data over Bluetooth Low Energy (BLE). It allows devices to transmit sensor readings (temperature, humidity, battery level, button events, etc.) without requiring pairing or an active connection.

Pressing any direction on the Flipper Zero D-pad (Up, Down, Left, Right, OK) sends a BTHome button event. Each direction maps to a separate BTHome button object, so Home Assistant sees them as button, button_2, button_3, button_4, and button_5 (OK, Up, Down, Left, Right respectively). Short and long presses are both supported. The Flipper's battery percentage is also included in each beacon.

Building

Install ufbt into a virtual environment:

python3 -m venv .venv
.venv/bin/pip install ufbt

Then build from the project root:

.venv/bin/ufbt

The first run downloads the Flipper SDK and compiler toolchain automatically. The finished app is written to:

dist/bt_home_controller.fap

Installing on the Flipper

Open qFlipper, connect your Flipper via USB, and use the file manager to copy dist/bt_home_controller.fap to:

SD:/apps/Bluetooth/

The app will then appear in Apps → Bluetooth → BT Home Controller on the Flipper.

Home Assistant setup

The first step is setting up the BTHome integration in Home Assistant.

Once setup, the Flipper should be automatically discovered after pressing any D-pad button once:

home assistant discovered

The device's page will then show the current battery status and its events:

home assistant paired

Description
Flipper able to control functions in Home Assistant using D-PAD hardware buttons.
Readme 311 KiB
Languages
C 100%