Roku Documentation, Notes, and Control

Set TV to receive a static DHCP lease to take out any issues with change in IP

Setup TV in home use mode. 

  • Remove all channel apps
  • Settings > TV Inputs > <input> > Remove
  • Settings > Parental Controls > *Set PIN* > Home Screen > Hide all items
  • Settings > System > Power > Power On > *Desired start input*

  • Scripted Below - Must do steps above for it to work as planned

  • Settings > Screensaver > Wait Time > Disable Screensaver (Scripted)
  • Settings > Audio > TV Speakers > Disable (Scripted)
  • Settings > System > Power > Auto Power Savings > *Disable all power settings * (Scripted)
  • Settings > System > Power > Standby LED > Off (Scripted)
  • Settings > System > Power > Fast TV Start > Enabled (Scripted)
  • Settings > USB Media > Auto Launch Off (Scripted)


 Roku Setup Script

Usage example: ./roku_tv_setup.sh 192.168.1.1

#!/bin/bash
IPADD=$1
TV="http://$IPADD:8060/keypress/"
H='Home'
R='Rev'
F='Fwd'
P='Play'
S='Select'
LT='Left'
RT='Right'
D='Down'
U='Up'
B='Back'
IR='InstantReplay'
I='Info'
BS='Backspace'
SH='Search'
E='Enter'

echo "Change script where necessary in case menu items and order change"
echo "This should be used only on TVs that have been newly setup with no changes made."
echo "You can 10secs to cancel before execution"
sleep 7
echo "Beginning in 3"
sleep 1
echo "...2"
sleep 1
echo "...1"
sleep 1
echo "...0"

echo "Disable Screen Saver"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5

echo "Disable Speakers"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5

echo "Disable Auto Power Savings"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5

echo "Disable Standby LED"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5

echo "Disable Fast TV Start"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5

echo "Disable USB Media Auto Launch"
curl -d '' $TV$H
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$D
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$S
sleep .5
curl -d '' $TV$U
sleep .5
curl -d '' $TV$S
sleep .5

echo "Return Home"
curl -d '' $TV$H

For Input use the following settings:

Use double sided tape to cover indicator bar/IR Receiver to stop use of remote. 

  • Only way to use a remote is from directly underneath TV while up close during testing. 
  • Thick double sided tape forms a good bound and blocks IR Signals well


Roku External Control API: https://sdkdocs.roku.com/display/sdkdoc/External+Control+API#ExternalControlAPI-KeypressKeyValues