Wow! This is fantastic
Just to set everyone’s expectations, we all need to remember that the proposal was just for an Edge device, not a SmartApp.
People are getting a little excited and not too many p’s and q’s I see!
This is always an issue with IR commands, I use a smart plug on the tv for power. Or you can poll the tv with a device like a nodemcu and the Host Pinger smart app for certainty.
Absolutely. TCL, Premeire and Stick would all be great. On/Off, volume and app selection would be the goal. The “Netflix and Chill” scene would finally be complete
@jkp good point! I had forgotten about that.
I was incorrect. I just tried the following commands in Web Requestor and all work as expceted
keypress/power - turns TV on/off
keypress/powerOff - only turns off
keypress/powerOn - only turns on
OK everybody, you’ve convinced me there’s enough interest. Keep the comments coming on highest priority controls; meanwhile I’ll get started on the driver. I’ll try to have a first pass for you all to look at by sometime next week.
Very cool! Thanks for confirming.
Already a legend! Roku driver will be huge.
Quick update on progress of a Roku Edge driver:
I have the basics working with my 2 Roku sticks (model 3600X and 3800X). I haven’t spent a lot of time on a pretty interface - it’s fairly utilitarian at this point, but has a power control button (more on that below), media player status, current media app, ability to chose media app, and ability to send any keypress command supported.
I think one of the biggest issues will be that these states have to be retrieved from the Roku via a polling mechanism. There is no way that I’ve seen so far to subscribe to any device states or otherwise get updates in realtime. I’ve included a preferences setting to configure the polling interval and defaulted it to 20 seconds. I think an absolute minimum will be 5 seconds because of likely hitting SmartThings platform rate limits on field updates. Remains to be seen what impact frequent polling has on the performance of the Roku device itself.
Now regarding power, which based on all your input is the number one desired control: As discussed earlier, with the Roku sticks I have, once they are off (and some models cannot even be turned off), you cannot turn this back on again via the LAN - because, well, they are powered off! And the other issue to consider is that there will always be a delay until the next polling cycle to know when it is turned back on.
So net net, issuing commands is instant, of course since it’s all local. But having updates on the Roku’s state will always be delayed depending on polling frequency.
Don’t know if the above is a show-stopper for any of you, but wanted to get this out there for comment.
- I need to start seeing about utilizing the ‘prettier’ stock media playback controls
- I’ve started with what the documentation says is available on all Roku devices, but need to now expand that to Roku TV-related controls and attributes. For this part I will need a willing guinea pig or two to be my testers.
I have a couple different Rokus, including RokuTV. I can test.
Roku Stick usually don’t have Power button.
Roku Premiere + does have power button, and it can turn TV on as is always connected to network.
I can help test if needed.
Happy to test for you
I will happily test this, I have 3 Roku 4k streaming sticks and some Roku express.
Each of these support on/off via API.
This has got me think of it would be possible to take advantage of Google Cast API/TTS
I truly think I’m going insane. For the life of me I can no longer replicate the power on behavior by sending keypress/power to a roku stick. You and I both saw that working before! Now when I send a keypress/power with the TV turned off, I get no return at all from the http request. If I try it from a browser I get a ‘page can’t be found’ error, and if I try it from Web Requestor, it just times out with no return. Were we hallucinating?! I could have sworn we both were able to turn the TV with Roku stick back on from being turned off. Can you please see if you can replicate it again? Or did I misunderstand and you see that only with a Roku TV?
Sending either keypress/power or keypress/PowerOff when the TV is on, turns it off as before.
Grant it, keypress/power is not in the documentation, so I was surprised it worked the first time we tried it…
I have tried that from Web Requestor first day when you posted, and it worked
I can’t get it to work either. I’m getting the same results as you.
My RokuTV and Roku Premiere+ turns On and Off, and Premiere+ turns Samsung TV on and off. Only stick goes OFF, but there is no ON. I have to figure that out, as stick gets power from TV, and when it’s turned OFF, it shuts down TV and cuts power to itself
This is a great post. I like this topic. I found many interesting things from this site. Thanks for posting this again.