[Release] Roku Connect integration App and Roku TV Device Handler

Now that I disabled auto management, and deleted all the channels I did not want, is there any way to add back just one or two? Without having to reload all of them and then delete the others?
Thanks

If you have my latest update, then yes. You manually add/remove applications one at a time in settings.

Perhaps this is a new thread, but I decided to start from scratch and install your new driver, the one file roku-tv.groovy. Now I get this error when I try to use any of the buttons, like On, Off, Mute

groovy.lang.MissingMethodException: No signature of method: user_driver_apwelsh_Roku_TV_545.httpPost() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, user_driver_apwelsh_Roku_TV_545$_keyPress_closure11) values: [http://192.168.1.4:8060/keypress/Power, user_driver_apwelsh_Roku_TV_545$_keyPress_closure11@859cbf] on line 499 (on)

I probably made a mistake when I uploaded. If it's a bug I added I will fix it now. if I failed to merge the right code, I will resolve it. Either way, I am will fix it right now. Sorry about that

1 Like

This is fixed. Pull the latest version. Sorry about that.

1 Like

Works. Thanks for the quick action!

I spoke too soon. Now when I try to click the ON button for the child app, I get this error:

groovy.lang.MissingMethodException: No signature of method: user_driver_apwelsh_Roku_TV_580.httpPost() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, user_driver_apwelsh_Roku_TV_580$_launchApp_closure12) values: [http://192.168.1.4:8060/launch/195316, user_driver_apwelsh_Roku_TV_580$_launchApp_closure12@d0a102] on line 527 (componentOn)

huh... I am not having a good day for these changes. Okay, I will fix this again, but I will fully regression test against my TV and my Roku this time. No more quick-fix w/o regression tests. When I changed the web calls, the Roku uses an http/POST to execute an action, but receives input only from the URL.
[update] In Hubitat, I need to pass a request body, even if it is empty -- this is not optional. I have fixed it, the 2nd of two POST methods to fix this completely. I am running regression tests now.

Hello. I'm new to this stuff so please excuse my ignorance. I having been trying to get this to work for my roku devices but never seem to be able to. I loaded the device drive and went through the instructions to set up the virtual device and entered the IP address which looks to have worked. All the apps loaded as I would expect, but I can not get any of the commands to do anything (home, select, play, left, right, etc). When I use the physical remote things work, and the app registers the correct app I choose. I am using the latest drive save to Github. Refresh is always set to Idle. is that correct? It is just the one driver now from what I can tell, correct? Any help with this would be greatly appreciated. Thanks

Welcome to the community @Seagull260

Yes, you joined it at a time of awkward updates. Sorry about that. I have just fixed the bugs I could identify, and ran a full regression test. All functions seem to behave correctly on my Roku TVs and Roku Premiere Plus. So pull the latest update and try again. (note, you can simply use the import button to pull the latest code, in the Drivers section.

Yes. Refresh is an attribute I added to track the current state of refresh. The Roku devices cannot handle concurrent access so I use this to suppress refresh events. If you press the refresh button, you will see the values change quickly, then return back to idle. The faster your Roku, and network, the quicker this returns to idle.

Yes, this is just one driver.

Try again. I fixed the bug, and all should be good. I have fully tested on my devices this time. Please let me know of any issues.

I re-imported the driver. All looks to be good now. This is awesome. Cannot thank you enough for taking the time to work on this.

Just feel bad I made so many amateur mistakes in one 24 hour period for what should have been a simple update.

Looks good! Thank you so much for the effort. Looks like you just had one of those days....

I noticed this exception in my log when my Roku TV is off. Looks like it is still trying to poll it. Perhaps this is expected?

java.net.NoRouteToHostException: No route to host (Host unreachable) on line 351 (refresh)

Q: Does the TV turn via via Hubitat when the Roku is in this state? If so, I can convert this to a power off event and suppress the log output. But, I don’t do anything for this event at present, since my wake on lan supported devices don’t wake on my network.

I am using this time to actively work in my app to manage the to manage the roku devices. I ran into a bug or a very annoying quirk if the app framework that is causing me headaches. When I get this resolved, I will publish the app. It is intended to auto-discover all roku players, and allow you to add them and manage the app related buttons too.

1 Like

Everything works as expected. Tv turns on and off through the Hubitat. I just noticed that this exception occurs when the TV is off. I assume you need to keep Polling the Roku even when it is off because there is no way of the App knowing if the Roku was turned on otherwise?

yes. But the reason I asked if it will turn on via Hubitat, is because most find that they have to set their TV to not power off. So when you press the off button, it actually just goes to sleep. In this way, I can poll it for status while it is off, and can command it awake. If your TV is not on, and you get the message in the logs, but can use Hubitat to turn it on, it simply means that the WakeOnLan is working. Either way, I will suppress the error. I have a Roku that I have unplugged and it is annoying me to see the entry in the log as well.

You must be correct. My Fast-Start feature is disabled and it still turns on via Hubitat.

1 Like