I present for your use, my new Roku TV App and Driver for Hubitat.
Download from GitHub, or install it through the Hubitat Package Manager application and be kept updated on my changes as they are published.
This uses a parent, and child device. The parent device
Roku TV is the main device driver that controls the Roku media players, and Roku powered TVs directly as a TV capable device. The child device is a hubitat/Generic Component Switch for launching Roku apps, and tracking state of which app is loaded. Each app can get its own switch. If automatic management is enabled, the switches will be deleted automatically if the app is deleted from the Roku -- there is no need to manage them manually. Still, if you wish to, you may.
I use state to keep track of some helpful data regarding the Roku device, and I no longer require the user to enter the device MAC address. The MAC is auto-discovered using the standard HE tools. If using the Roku Connect app, then the IP address will be automatically updated by the app, as it detects changes. The Roku Connect app uses SSDP to discover all your powered on, and connected Roku players, so there is no need to manually configure them -- though you may do so if you wish.
This driver works best with Roku Enabled TVs, however, it will enable standalone Roku devices. Standalone Roku players that support HDMI-CEC (like the Roku Ultra), when connected to an HDMI-CEC TV can control the TV power (provided that your TV has HDMI-CEC enabled). Note that the standalone Roku Streaming device that I tested did not offer volume control of the TV as of the last time I tested. If Roku adds this ability to the device, this driver will be able to control TV volume as well.
I use this driver myself on two Roku powered TCL TVs, and a Roku Ultra.
[update]: The driver have been updated to greatly improve performance.
[update]: Now you can select any remote button as a key to add as a child device.
[update]: Wake-On-LAN and Wake-On-WLAN will only be called if the device supports it, and the device is already off. Removed the transitioning values turning-on and turning-off to improve compatibility with the rest of HE integrations (apps, alexa, sharptools, etc).
[update]: The driver location on GitHub has been moved. Import driver to will update the repo location.
[update]: The Child Device Driver roku-app-child.groovy is no longer used. All Children devices not use the built-in generic component drivers.
[update]: Fixed a bug that prevented the AV and HDMI child devices from working.
[update]: Child devices no longer support refresh
[update]: Added ability to manually add/remove child apps if auto-management is turned off
[update]: The new Roku Connect integration app is ready for use.
[update]: Added ability to add/remove child switches for each of the remote keys. These keys are momentary switches, as virtual buttons are not very effective for home automation, considering that smart speakers (like Alexa) cannot work with them.
The Roku Connect app is optional, and it does require the
Roku TV device driver be installed on your Hubitat device to function. At present, the app will find Roku devices, create child apps for selected devices, and allow you to add/remove Roku apps as child buttons from a central location. The app also allows for renaming the labels of all app managed Roku devices. As I progress on the app, I will integrate centralized management of other settings of the Roku TV devices into the app as well.
NOTE that the any Roku devices added via the app are owned by the app. If the app is deleted, like any other app, the child Roku TV devices will also be deleted.
I have converted my TVs over the to app. With the app, there is no more managing of the IP address -- the app will keep it updated based on the SSDP auto-discovery results.
The Roku TV driver and Roku Connect app are available as a package via Hubitat Package Manager.