Stealth Voice Assistant inside a JBL Speaker

I hope reposts are allowed. This was the original thread.

Nobody suspects one has esp32s3 with ESPHome and Voice Assistant inside it.
All the original speaker functions still work. The other is just a JBL.

Result

Configuration

  • Hijacked the “Pair” button to trigger voice-assistants via Scripts
    • wake-word enabled
    • Press and hold to use it as original Pairing
  • Special script to use a single pin as binary sensor or button press as needed
  • Read JBL battery level over Wifi or HA
  • Control all the speaker physical buttons remotely:
    • power, pair, play, pause, skip, vol up/down
  • automation that check if JBL is playing (via regular Bluetooth), pause it if voice assistant is triggered, resume playback

Hardware


Frontend Dashboards & Frontend


Work process

  1. optimistically and carefully disassemble your JBL Flip 5 speaker, remembering how to put it back together. (jk, i forgot).

  1. Research the product service manual to find touchpoints to attach to that control the speaker.
    Carefully trace the image, log all the possible toucpoints.

    1. Find out your model does not have the same points, since it is a different version. Contact JBL, Harman Kardon, ask nicely for a manual, be denied and disappointed of your wasted time.

Leave it sit for a couple of months, be sad.

  1. 2 . Then just put it back together as before, but before just for fun put some wires against random points and be happily surprised that something has happened. Try again and log what happened. Some turned speaker on, some controlled volume.

  2. Regain enthusiasm. Attach your ESP to the points you found

To your surprise it works.

Try to put it back inside the case.

Just shove it and hope no wires come loose.

  1. Nobody suspects that one is not like the other.

:speak_no_evil: ESPHome > Voice Assistant > Home Assistant > ChatGPT.

Impress your friends and family who are still there despite your autism.

Would you mind sharing a video of the voice assistant in use :smiling_face: Thx a lot!