Control JBL 5.1 soundbar


i want to ask if someone manage to control JBL Bar 5.1 through home assistant?


I’m also interested in this. Anybody done it?

I’m about to get one. Don’t they have a remote? with a broadlink and universal media player something could be worked out.

HI, sorry to drag up an old thread. I have a JBL Bar 800 connected to my Homeassistant. I can turn it on and stream media to it as it starts up in chromecast mode. However what I would like to to as part of an automation is to have it start up in bluetooth mode. This is the default startup mode if I use the JBL remote to turn it on. Unfortunetly when i control it through homeassistant using the media_player.turn _on it always starts up in chromcast mode. And I played around with the media_player.select_source to see if I could figure it out that way but I couldn’t get it to work. Anyone know of a way to be able to do this?

FYI I read up in the forums and people have previously suggested to use something like the Broadlink RM4. However this isn’t an option as there is nowhere for me to be able to place it line of site.


I landed on this page because I to shutdown the JBL 800 when I shutdown my TV. It’s unable to work over CEC because is power-off the TV by a smartplug.

This and some other pages didn’t give me a good solution.
I was unable to accept there is no solution because I’m able to use their app (JBL one) that act as a remote. So I did some digging of my own. Through http-toolkit I’ve discovered their probably is something like an API. I’ve only uncovered what I need but maybe somebody is able to do much more through this method.

The JBL is reachable over an HTTP request.
Substitute << ip-address >> with the ip-address of your soundbar.

    url: 'http://<<ip-address>>/httpapi.asp'
    method: POST
    payload: 'command=sendAppController&payload={"key_pressed": "power"}'
    url: "http://<<ip-address>>/httpapi.asp"
    method: POST
    payload: 'command=sendAppController&payload={"key_pressed": "volumeDown"}'
    url: "http://<<ip-address>>/httpapi.asp"
    method: POST
    payload: 'command=sendAppController&payload={"key_pressed": "volumeUp"}' 

After pasting the above code in your config, restart your HA.

In the automation call it with:

alias: Power down soundbar
service: rest_command.jbl_power
data: {}