HomeBridge plugin for Sony Bravia TVs (AndroidTV based ones and possibly others).
Supports the following functions
- Turning TV on/off
- Setting volume
- Selecting inputs / channels
- Starting apps
- Trigger automation when turning the TV on/off
- iOS 12.2 remote support
- Secure connection to TV without PSK
This plugin requires iOS 12.2, to use it with previous iOS versions install version 0.96 of this plugin.
- Install homebridge using: npm install -g homebridge
- Install this plugin using: npm install -g homebridge-bravia
- Set "Remote start" to ON in your TV Settings->Network->Remote Start
- Use one of the methods outlined below to authenticate with your TV
When you run the plugin for the first time the easiest way is to run the homebridge process directly from command line as the plugin prompts you for a PIN that the TV will give you. This way the TV doesn't have to be set to the unsafe "Basic" login mode.
- Stop the homebridge server (e.g.
sudo systemctl stop homebridge
) - Run server from command line (e.g. enter
homebridge
on command line directly) - TV shows PIN
- Enter PIN on command line
- The plugin should now log in successfully
- Press Ctrl-C to stop the homebridge process
- Restart homebridge server as a service again (e.g.
sudo systemctl start homebridge
)
If for some reason you can't run the HomeBridge executable directly on command line you will have to run the server once, then add an entry "pwd":"PIN_HERE" with the PIN that appears on your TV to your config.json and restart the server, then after the first successful login remove the pwd entry again from config.json.
- Run server with homebridge plugin enabled
- TV shows PIN
- Add "pwd":"PIN_HERE" in config.json (with your PIN of course)
- Restart the homebridge server
- The plugin should now log in successfully
- Remove "pwd" entry from config.json
- Restart homebridge server again
If you want to use Basic login mode set the TV to Basic login mode (TV settings / PSK) and add a "pwd" entry with your password to config.json, no PIN entry is needed.
Note that this is not recommended, it can easily be used to hack your TV and though it your whole network.
Example config:
"platforms":[
{
"platform": "BraviaPlatform",
"tvs": [
{
"name": "TV",
"ip": "192.168.1.10",
"soundoutput": "speaker",
"tvsource": "tv:dvbs",
"applications": false,
"pwd": "12345",
"sources": [
"extInput:hdmi",
"extInput:component",
"extInput:scart",
"extInput:cec",
"extInput:widi"
]
}
]
}
]
Required options:
tvs
is the list of Sony TVs in your homename
is the name of your TV as it appears in HomeKitip
is the IP address of your TV, find it out through your router or set it in the TV
Optional options (all inside one TV entry):
sources
is an array of sources to display in HomeKit, default["extInput:hdmi", "extInput:component", "extInput:scart", "extInput:cec", "extInput:widi"]
tvsource
is your preferred TV source, can betv:dvbt
,tv:dvbc
ortv:dvbs
, default none (no TV channels listed as inputs)applications
can be used to enable listing applications in the input list, defaultfalse
-- Providing an array of objects with application titles will only add applications whose names contain the titles to the input list:"applications": [ { "title": "Netflix" }, { "title": "Plex" },
soundoutput
is your preferred TV sound output, can bespeaker
orheadphone
, defaultspeaker
cookiepath
file (!) name to store the cookie file to, default"[user home]/.homebridge/sonycookie"
port
is the IP port of your TV, default 80mac
is the MAC address of your TV, set it to use WOL instead of HTTP to wake up the TV, default nonepwd
set password to use Basic login - only recommended for PIN entry!
You can turn your TV on and off through Siri and Apples Home app.
All Channels, Inputs and Applications can be selected in the HomeKit inputs selector
The TV registers as a TV remote device in HomeKit and allows to use basic function keys and set the volume through the Apple Remote app or iOS configuration screen. Use your phones volume knobs to set the TV volume!
Thanks go out to "lombi" for his sony bravia homebridge plugin, which this plugin is heavily based on.