Install Bravia
The Sony Bravia series are powered by Android.
Different python packages allow to control the TV from a PC:
- Bravia Console
- py-sony-bravia-remote, Python 3
- BraviaRC, Python 3
- sonybraviacontrol
- bravialib
Contents
[hide]Set-up the TV
Controlling the TV requires its:
- IP address
- device name
- device id
- PIN (entered at setup time)
- Pre-Shared Key (PSK)
With the remote control, select:
HOME > Settings (gear) > Network > Home network setup > IP control
From there:
Authentication > Normal and Pres-Shared Key Pre-Shared Key > value
Test the script
Install pip
if it isn't done yet:
su which pip pip -V apt install -y python3-pip pip install requests exit
Download Bravia Console.
su control SCRIPTS_DIR='/home/control/Documents/Controls/' wget https://github.com/darkosancanin/bravia_console/archive/master.zip -O ~/Downloads/bravia_console.zip unzip ~/Downloads/bravia_console.zip -d /tmp/ cp /tmp/bravia_console-master/bravia_console.py $SCRIPTS_DIR/ chmod 775 $SCRIPTS_DIR/bravia_console.py $SCRIPTS_DIR/bravia_console.py > exit
The console interface shows how to set-up the Pre-Shared Key (PSK).
Edit bravia_console.py
to match the script to your PSK:
self.psk = "0000"
Connect to the TV:
./bravia_console.py > show info > show commands > hdmi1 > poweroff > tvpower > exit
Change input source:
./bravia_console.py -c hdmi2 > /dev/null ./bravia_console.py -c hdmi1 > /dev/null
Change some settings
Remove "Idle TV standby":
Home -> Settings -> Power -> Eco -> Idle TV standby -> Off
Install xPL screen controller
Download the screen controller script to xPL scripts directory:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls cd $SCRIPTS_BASE_DIR wget http://www.dspc.ch/xPL/Downloads/xpl-screen-bravia.pl chown control:users *.pl chmod 775 *.pl
Test the screen controller:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-screen-bravia.pl -v -n loungeScreen
Open another terminal window and test the commands:
su control SCRIPTS_BASE_DIR=/home/control/Documents/Controls $SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-screen.loungeScreen -c screen.basic power=off $SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-screen.loungeScreen -c screen.basic power=toggle $SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-screen.loungeScreen -c screen.basic input=hdmi4
Launch the scripts at startup
Debian with SystemD
On Debian with systemd (such as Raspbian), the scripts can be defined as services.
Edit /lib/systemd/system/xpl-loungeScreen.service
:
[Unit] Description=lounge Sony Bravia screen control After=network.target [Service] Type=simple ExecStart=/home/control/Documents/Controls/xpl-screen-bravia.pl -n loungeScreen -w 2 Restart=always [Install] WantedBy=multi-user.target
Activate the service:
su systemctl enable xpl-loungeScreen.service service xpl-loungeScreen start
Reboot and check:
ps ax | grep -v grep | grep -i xpl systemctl list-units --type=service --state=running | grep xpl service xpl-loungeScreen status