[RELEASE] RebootRoku

SmartThings SmartApp to setup your Rokus to reboot on a schedule.

GitHub Repository

I know not everyone has this issue, but my Rokus are constantly getting hung up and I need to reboot them. I was using a smart plugs on 2 of them and decided there was a better / cheaper way as I have 6 Rokus and they all have the problem. I have been testing this for a couple weeks now and it works great.

How it Works

You will need the following information in order to configure this application.

  1. Roku IP address
  2. Menu path to reboot

RebootRoku sends the required menu path keypresses to reboot your roku. To find these, just navigate your menu (take the shortest path) and note the steps in order to reboot. I know there are remote keypress combinations that will reboot your roku, but they do not work remotely.

I have the default value of the menu path set to work with the v3 Rokus, but you can change it to whatever you need it to be per Roku.

You choose the time it should reboot, likely when you are sleeping.


  1. You need to use the ip address of your roku(s), so you might want to make them static ip assignments in your router.
  2. You can customize keypresses to match your roku, make sure you start with home,left,home to ensure you are starting from the correct place.
  3. Don’t set the time between keypresses to be too long, this whole thing needs to execute in 20 seconds per roku.
  4. If you wan to see if you keypresses are going to work, select a switch for fast testing. The process will begin about 5 seconds after you press the switch, I have it running asynchronously.

Setup Multiple Rokus

Smart App Settings

Installation via GitHub Integration

  1. Open SmartThings IDE in your web browser and log into your account.
  2. Click on the “My SmartApps” section in the navigation bar.
  3. Click on “Settings”.
  4. Click “Add New Repository”.
  5. Enter “ericvitale” as the namespace.
  6. Enter “ST-RebootRoku” as the repository.
  7. Hit “Save”.
  8. Select “Update from Repo” and select “ST-RebootRoku”.
  9. Select “rebootroku.groovy”.
  10. Check “Publish” and hit “Execute”.

Manual Installation (if that is your thing)

  1. Open SmartThings IDE in your web browser and log into your account.
  2. Click on the “My SmartApps” section in the navigation bar.
  3. Click the blue “+ New SmartApp” button at the bottom of the page.
  4. Click “From Code”.
  5. Paste in the code from “rebootroku.groovy” and hit “Create”. (https://github.com/ericvitale/ST-RebootRoku/blob/master/smartapps/ericvitale/rebootroku.src/rebootroku.groovy)
  6. Click the “Publish” --> “For Me”.
  7. The app will appear on your app under “Marketplace” --> “My Apps”
1 Like

So, this looks pretty interesting for purposes that would be a greater scope than simply resetting the Roku. It would seem that it natively supports doing any sequence of key presses at a scheduled time… So… Would it also be easy to call these stored sequences from elsewhere (ie tied to a virtual switch, in a core piston or other)?

1 Like

Not hard at all.

1 Like

Would it be hard to put the days of the week for activation for this.

I actually want to use it to turn on plex at a set time and pick the show that I fall asleep to, but I don’t want to do it on weekends because I go to bed at a different time.

Update from GitHub and try now. I added a feature to allow you to select a day or days.

1 Like

Awesome! Thank you for adding that.

Thanks… Roku rebooting is a headache.

I am glad I am not the only one. BTW, I added the day of the week functionality today. The CRON statement looks correct so it should work, but I did not do extensive testing. My Rokus have been rebooting every night at 2am for almost 2 weeks.

I like this for other possible control applications. I have my rokus on smart plugs already, that power my entire setups, but are shut off each night to prevent vampire draw, so they get rebooted nightly anyway. :slight_smile:

Yea - It can basically be used for anything you can complete in 20 seconds. If I get around to it this week, I’ll add the ability to put a custom pause in. For example… home,left,home,right,(pause:5000),right,right,select.

This will allow you to launch applications and give them time to load.

1 Like

Updated: Added app touch to reboot all of your rokus at once.