AppsWorksSource available
Target: JBL PartyBox Android app

I reverse engineered the JBL PartyBox app so I could control my speaker from Home Assistant

Platform
Home Assistant OS / Supervised
Outcome
Works

Evidence at a glance

Loading source evidence…

What was done

This project provides a Home Assistant integration to control JBL PartyBox speakers by reverse engineering the official Android app's Bluetooth protocol.

The author reverse engineered the communication protocol used by the official JBL PartyBox Android app (version 3.14.20) to enable control of JBL PartyBox speakers directly from Home Assistant. The integration communicates with the speaker via GATT over classic Bluetooth (ATT on L2CAP PSM 31), as the speaker's GATT database is only accessible over classic Bluetooth once an audio connection is established. The project includes a web panel for Home Assistant that provides a debug console for monitoring frames and sending raw commands. Anthropic's Claude Opus 5.5 assisted in decompiling and analyzing the app, writing the codebase, developing simulation tests, and debugging connection behavior from logs. The integration supports various speaker functions, including volume control, EQ settings, light show patterns, and playback management. Functionality is limited to the specific speaker model tested by the author, and the protocol remains unofficial. Entities are unavailable when the speaker is disconnected. The author notes that simulation tests do not guarantee performance on actual hardware.

Sources: Source 2, Source 1

Reproduce it

setup
Install the repository via the Home Assistant App store, start the JBL PartyBox app, and use the sidebar panel to scan for and connect to a speaker.

Community

Ask a question, share what worked, or follow the next milestone.

Your library