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 Premier+.
The Roku TV Driver has the following features:
- implement capabilities for "TV", "AudioVolume", "Switch", "Refresh"
- Can send any remote control command to TV
- Easy access to Home button as a Custom Action
- Easy access to KeyPress for any remote key as a Custom Action
- Auto-discovery of installed Apps
- Configurable Auto-Management of installed apps as child devices
- Configurable child device for TV inputs
- Implements custom "Application" attribute to report the current application
- Child apps may be turned on or off.
- Ability to turn on Roku media player connected TVs if
- TV must support HDMI-CEC
- TV must be connected with compliance HDMI 1.3 cable
- Roku Player must support HDMI-CEC features (some Roku Sticks do not)
- Roku Player / Roku TV must be powered on (fast-start enabled on Roku TVs)
- Ability to search for content on Roku, and auto-play content if results are confident enough
- Ability to create Child Switch Devices for any Remote Key
Roku Connect App
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 and Install Roku devices
- Create or Remove Roku "Channels" (aka apps) as Child Switches of the Roku Device
- Renaming of Roku child switch 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: 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.
Note 2: Any Roku devices created manually (without the app) cannot be managed by the Roku Connect app.
The Roku TV driver and Roku Connect app are available as a package via Hubitat Package Manager.