Driver Details

Roku Media Streamer

Updated: April 6, 2022
Version: 2.24


This driver is for Roku Media Streaming Devices. It provides two-way control of the device by remote emulation and by giving channel lists and icons.

Please Note: System files using pre-2.0 versions of the driver will need to be reconfigured and are not able to be updated directly using the update button in Integration Designer

Version History:

Version 1.01 makes it easier to send literal keystrokes to the driver for text entry.

Version 1.02 adds a direct IP address entry and Diagnostic Driver support.

Version 1.1 adds user programmable presets. 

Version 2.0 adds Multiple Devices and Selected Player

Version 2.1 adds support for 'active app' variables, improves discovery performance, and supplements the tagging. 

Version 2.11 fixes a problem selecting channels from fixed icons.

Version 2.12 Bug fix on 'Backspace' key.  

Version 2.2 Add Roku TV Support. Add TV Channel List, Power and Volume control. Fixes an issue of delayed input when returning to the home screen from certain Apps.

Version 2.21 Fixes an issue with Launch by Name command and resolves an issue with spamming prints in debugger.

Version 2.22 Added "Roku" template tag.

Version 2.23 Adds additional tags to support ID11 Roku template.

Version 2.24 Updated tag for "Launch By Name" command. Check instructions for how to use the updated syntax. 


Roku Streaming Device Driver

This driver controls the Roku family of media streaming devices.

Version History

1.0: The original release of the driver.

1.01: Takes the space out of the Literal Key default and adds the explanation below on how to type characters not normally in the search box.

1.02: Adds support for direct entry of an IP Address in the configuration and support for the XP Diagnostics Driver.

1.03: Fixes UPnP issue preventing immediate discovery.

1.1: Add User Favorites allowing the end user to create their own favorite page. Favorites are stored in persistent memory and recalled on every reboot.

1.11: Fixes a problem that caused transport commands to fail when using ID v9.5 or greater.

1.12: Fixes a problem that could cause the Instant Replay command to not work.

2.0 Add the ability for multiple devices and selected players. Systems with previous versions of the Roku Streaming Device Driver cannot be updated using the update button in Integration Designer. The driver will need to be reinstalled and the system reconfigured.

2.1 Add the ability to receive feedback on the current (active) app for each device. Add multiple auto-programing tags. Minor bug fixes.

2.11 Fix issue that caused Fixed Icon Select command to fail.

2.12 Fix Backspace command. Test on Roku Ultra device.

2.2 Adds Roku TV Support. Adds TV Channel List, Power and Volume control. Fixes an issue of delayed input when returning to the home screen from certain Apps.

2.21 Fixes an issue with Launch by Name command and resolves an issue with spamming prints in debugger.

2.22 Added "Roku" template tag

2.23 Added tags for ID11 Template Compatibility

2.24 Updated tag for "Launch By Name" command. Check instructions for how to use the updated syntax.

Channel Icons:

The driver extracts all the channel names and icons from the device. It keeps all the channel names in a list variable but it doesn't know how many icons you might need so it allows 20 icons to be displayed at one time and allows you to scroll them. The 20 variables will initially show the first 20 channel icons but a scroll command will shift the rest of the channels into the 20 visible icons. The sample file shows this by having 4 icons on the Icons page and scroll buttons that shift 4 icons at a time. Initially the page shows icons 1-4 but after a scroll up it shows channels 5-9. Channel icons scroll back into the end of the group as the scroll continues.

If you install or remove a channel from the device the icon and list variables will change to match.

User Favorites:

Up to 24 User Favorites can be programmed. The driver will store them in persistent memory to be reloaded after each restart. The driver will supply variables with both the name and icon for the channel programmed into that slot. The Favorites page in the sample file shows how this is done. It also shows how the favorites can be programmed and how the Program Mode for User Favorites flag variable can be used to provide warning in the UI that the controls do not currently do what they typically do.

The programming mode is toggled by the Toggle Program Favorites command. When in this mode the Channel List Select and Launch Favorites command are repurposed to program a channel from the list into a specific Favorite slot. As soon as a channel has been picked from the list and a favorites has been selected the favorites is written and the program mode and its variable are cleared.

Steps to Programming a Favorite:

1. Click the Program Button (PGM on Sample File)

2. Click the Favorite Tile you wish to program to

3. Click the App from the App List you would like to put in that place

If you do not select a favorite tile to program to it will default to the first favorite slot.

Fixed Icons:

You can set up 8 'fixed icons' by entering their names into the driver configuration. This allows you to create 8 non-scrolling buttons and still have the driver supply their icons. When the configuration requires a channel name as a parameter it must be the exact channel name: Facebook Photos & Videos, not Facebook, is a correct channel name. The channels list variable will show the names that the driver expects, or you can use your browser to access <yourRokuIPAddress>:8060/query/apps which will get the list directly from the Roku.

Device Control:

This driver implements commands to emulate all the buttons available on the device remote control. In addition you can enter characters directly into searches by using the [Keys] Literal Keystroke command and supplying the character.

Entering Literal Characters:

The Roku search box only contains a small number of characters and a space. Many of the punctuation characters don't work when entered directly into the Literal Key command. If you need to enter one of those characters you can put an ascii value into the 'Key' parameter. To do this you have to use a percent char (%) followed by its ascii value in hex format. For example: The '@' symbol can't be type as a literal, if you need one however you can enter %40 in as a parameter and it will work.

Using Search feature on Roku:

Roku devices (with software version 8.0 as of this release) will automatically look for voice input for its (as well as most apps) search feature. This also means that the [Keys] Search command will also follow this protocol. Users will want to use the navigation tools (Up, Down, Left, Right) to enter the search box (in either Roku's native app or any other app). From there they can use either the nav tools or the Literal Key commands for their search.

Channel Launching:

The driver allows navigation of the device itself by showing all the channels on the device as well as their icons. It lets you launch channels in several different ways:

1. Select from a List
All the installed channels will be listed in the Channel List variable, selecting from that list with the Channels Select command will immediately launch that channel.

2. ***NEW***Launch by Name You can type a channels name in as a parameter in the button tag using a format as follows(App:Netflix). It must be the exact name of the channel as with Fixed Icons in your configuration (see above).

3. Select Fixed Icons These commands match up with the Fixed Icons and allow you to jump to any of the configured channels.

4. Icon Select These match up with the 20 scrolling icons and launch the channel currently occupying that icon slot.

5. UI Interaction Using remote emulation commands you can hit the Home button or use the Back button to return to the top level and navigate the on screen UI, using the Select command in the [Keys] category to launch the channel.

6. Favorites Selection (Version 1.1 or later) The Launch Favorite command will launch the favorite programmed into that favorite’s slot.

Channel Feedback:

Roku devices (as of Version 2.1 or later) now provide feedback of which channel it's actually running. This had been implemented in various ways in this driver. A new variable (Current Channel) has been added as well. The included sample file has examples of each of these options. As before, each channel is free to provide feedback but there is no standard method for that and few of them do so there is no feedback from channels.

TV Channels(as of Version 2.2 or later) :

TV channels work very similar to other Roku channels. There is a list variable which contains all tv channels available on the device but also can be controlled through channel up and down. There also is a boolean variable that is "true" when you are on the live tv input. There also is an Active Channel variable which can be used to show which live TV channel is currently selected by the player.

Input Switching(as of Version 2.2 or later) :

There are capabilities to swap between up to 4 HDMI inputs, the Live TV input, and an AV input on Roku TV's. These commands are found under Keys, and DO trigger NewApp events. These inputs also have a boolean variable connected to each of them which indicates which of the inputs if any are currently selected. If none are true a Roku Channel/App is currently selected.