0xreversed/with.ai
Firmware and hardwareWorksSource available
Target: Nubert nuControl X-2 speakers (BLE)

Reverse engineered the Nubert nuControl X-2 speaker Bluetooth protocol into a Home Assistant integration with Claude

Nubert nuControl X-2 speakers (BLE): Local control of streaming speakers, from the app's own Bluetooth traffic.
Image: GitHub (DatNoHand/nubert-ble-homeassistant)

What was done

A Home Assistant integration for Nubert streaming speakers, with the BLE protocol decoded from the official app's traffic.

DatNoHand built a Home Assistant integration for the Nubert nuControl X-2 streaming speakers. The repo states that the protocol reverse engineering, the code and the docs were built with Claude Sonnet 5, with a human directing and reviewing throughout.

How it was done

There is no vendor API or public documentation, so the protocol came from capturing and decoding the official app's Bluetooth traffic. Each opcode in the protocol doc was checked against a real speaker before being marked confirmed. It was tested with a nuPro X-4000 pair.

Results

The integration gives a media player with power, volume, mute, source and sound modes, number entities for bass, mid-high, balance and five EQ bands, switches for loudness and analog gain, preset selection and a pairing button, with live state through BLE indications. Limits are listed honestly: Linux with BlueZ only, one BLE connection at a time, and write-only power state. The code is MIT licensed.