[Release] Remote Builder – A New Way to Control Devices

Remote Builder allows you to create rich virtual remotes for controlling devices around the house. In the initial release there are 3 unique remotes as shown below. Remotes are the virtual equivalent of a physical button remote you might have around the house. Just like most physical remotes, these virtual remotes do not display the state of a device. They are intended to be used in proximity with the device being controlled, so the state is directly observed by the user.

Remote Builder is a companion product to Tile Builder. If you already have a Tile Builder Advanced key you can use that to activate Remote Builder and access all remote types. If not, then Remote Builder will run in standard mode and you will only have access to the Fixed 6 Button Remote and the recently added Roku Remote shown below.

Additional Remotes
Roku - September 5th, 2024. (Part of Remote Builder Standard)

More remotes will be developed over time to address other common household appliances. I'm already considering a few others but would love to hear from people, either users or driver developers. So please DM me if you have an idea you would like to share. If you have developed a TV driver it would be easy to add support, it's just a few strings added to the app.

Why use a Remote?

  1. Remotes are space efficient. Below: A dashboard with 18 Hubitat buttons vs 18 buttons on a Custom Remote.
    image

  2. Remotes are customizable. The device, action, icon, icon color, background color and tooltip on each button can be customized (with some exceptions) to indicate the function of the button. One remote can control a variety of devices so the custom buttons on your TV remote could also turn the lights off or the temperature down.

  3. Remotes are Applet’s. Remotes are lightweight applications delivered over an Endpoint to give a rich app experience vs a web experience. No files required to run, it's all done via the Endpoint.

  4. Remotes are scalable. Remotes use Scalable Vector Graphics (SVG) to render the remote layout so they scale to fit whatever container they are in.

  5. Remotes are easy. With a working Samsung TV device and Remote Builder installed you can create a fully functional TV remote in 1 minute. https://youtu.be/G7WiacN7Uz4?vq=hd1080

  6. No Dashboard Required. Remotes can run directly from the endpoint, either local or cloud. Placing the Remote on a dashboard is entirely optional.

  7. Delegation. Remotes are an easy way to give control to a limited set of devices and a limited set of actions.

  8. Synthetic Commands. Remotes add synthetic commands to the available command list. For example, *toggle will be added to a switch device if no toggle command exists. For a button device *push1 - *push4 and *doubleTap1 - *doubleTap4 will be added. These allow you to mimic the actions of an existing button controller.

Installing Remote Builder
You can install Remote Builder using HPM. If you do be sure to select the modules you want.

For more information on Remote Builder you can find the Remote Builder Help file here.

I welcome any feedback.

Thanks to @djgutheinz and @hhorigian for working with me to make sure their device drivers were fully compatible with the TV Remote.

20 Likes

I have TBA already and now I see a brighter future with this. :wink:
So all you need to do is replace my 2 Harmony's with support for 135,000 devices and sell me a dozen IR blasters! :rofl:
Maybe I'll have a use for old cell phones as universal remotes.
Oh Dawin, another project in my retirement. :slight_smile:

2 Likes

@garyjmilne : Another winner!
I knew that I had too much spare time, and now I know what to do with it!

3 Likes

Let me know how you get along.

In addition to all of my Hubitat devices, every TV in my house has a Firestick. Can I interact with those?

The remotes in remote builder are an interface to a driver. So if you have a driver that can control a firestick, then you would be able to use this. I don't have one myself and a cursory look doesn't show much for direct firestick integration as far as I can tell.

Poking around, it looks like a no go.

Do we have to use the Hubitat app to access the remote, or can we create a shortcut on our phone? I'm trying to make this as easy as possible for my wife.

While you can create a Remote Builder tile in Dashboards app (see the RB docs* for steps), it's not at all required. Instead, RB will give you two URLs - a Local endpoint, and a Cloud one - that take you to a stand-alone "applet" displaying the remote you've created.

Depending on whether you're connected to the same LAN (local) or accessing through your mobile device away from home (cloud), having the endpoint(s) saved as shortcuts on your browser lets you bring up the RB remote quickly.

2 Likes

I see it now. Thank you. :blush:

1 Like

Next question. Is there a way to add a favicon to the URL, so we're not stuck with this?

1000061253

I’m going to look at the options for doing that in a future release.

1 Like

I added a web app manifest for this.

1 Like

Could you elaborate Dan. From my cursory review the location of the manifest would be defined within the html file. So from that POV i dont understand your comment. Thanks.

Aah, I think ypu mean that was how you solved the same problem with Watchtower?

This, sorry about the confusion.

1 Like

@bbrannon , since Firestick can be controlled via Alexa Routines, you could in theory create a routine (e.g. "Launch Netflix on Firestick" or "Raise Firestick Volume") that gets executed through Hubitat via Echo Speaks app (e.g. "Say: Alexa, run the Raise Firestick Volume routine").

As far as incorporating Remote Builder into such a workflow, I'm thinking I would first create some test actions in Echo Speaks, then simply map RB button presses to trigger those directly. You might even be able to do all this without Alexa Routines as an intermediary.

EDIT: IIRC, one doesn't directly set volume on a FireStick, so my example above may not apply, but the premise is valid... Remote Builder buttons can target anything (such as your TV's own Vol+/Vol- commands) if you can already govern it via Hubitat. You just gotta get creative. :slight_smile:

1 Like

I'm already doing that with Alexa routines invoked from Hubitat. I was just curious to see if Remote Builder could skin the cat a little differently. Right now Remote Builder doesn't simplify anything for me. Most everything is automated and the handful of scenes that we use throughout the day are either invoked by Alexa -my wife's preference or Inovelli button controller switches -my preference..

Dan, does the manifest method change icon displayed for the file on the filesystem or just the icon in the browser tab?

You can change the browser tab icon using something like:

<link rel="apple-touch-icon" sizes="512x512" href="/path/to/your-icon.png" />
<link rel="icon" type="image/png" sizes="512x512" href="/path/to/your-icon.png" />
<link rel="mask-icon" type="image/png" sizes="512x512" href="/path/to/your-icon.png" />
<link rel="manifest" />
<link rel="shortcut icon" href="/path/to/your-icon.png" />

When user adds a shortcut to the main screen/desktop, the shortcut "should" use the icon you provided. When you launch the shortcut, it will open the web browser and load the specified URL. But the browser will display the URL bar and menus/buttons and all (at least on Android using Brave Browser).

Additionally, you can provide a web manifest:

<link rel="manifest" href="/path/to/your-manifest.webmanifest" />

When user adds a shortcut to the main screen/desktop, the browser will read the manifest, it will mark the shortcut as a "web app", and will use the icon, title and URL from the web manifest. Moreover, when launched, the page will load in full-screen mode, without the URL bar and buttons, mimicking a mobile/desktop app.

On Chrome desktop, an icon will appear in the URL bar to "install" the web app

On Edge desktop, you can "install" the web app from the browser menu

image

On Windows desktops (when "installed" using a Chrome-based browser), the shortcut will behave like a full desktop application: adds and entry in the apps list, opens full-screen, etc.

Windows screenshots

Hope this clear things a bit.

4 Likes

Dan, thank you very much of the detailed explanation. I got it to work using an embedded base64 icon that appears on the browser tab. I have to work through the rest of it but I really appreciate the leads.

2 Likes