How To Create and Use Dijit Activities
Categories: iPhone/Touch IR Controlled Devices
Pick up any universal remote control at your local shop, and you'll discover the vast majority of them control multiple things with one remote, but still operate like you have six different remotes in your hand. Anytime you want to start controlling a different device, you have to press a button to select the device first. For certain activities that often involves controlling functions like video or sound modes, inputs, and more across several devices, getting everything done can be a bit of a pain.
Wouldn't it be nice if the remote control you were holding could combine all your devices together and display only the buttons you need to use for a certain activity? It's not pie in the sky, or even a new concept. Advanced programmable universal remote controls, like the now defunct Pronto line from Philips, gave users an extraordinary amount of control. You could create anything you want... if you could afford the high price tag or figure out how to do it.
Dijit, however, gives users the ability to control their devices both ways. You can select individual devices with all functions for one device, or you can create special "Activity" devices that offer up the buttons you want to see for a particular use case. It's not as flexible as the thousand dollar custom remotes, but with a little know how, you can do quite a lot with Activities.
What's an Activity?
Dijit's activities pane offers an area to create new remote control screens with button layouts customized for a particular scenario. Buttons can be added from any device, or taught externally from other remotes.
Activities also provide two areas for "Activity Actions." These areas, currently designated as Power On and Power Off actions, allow you to set up two macros. Simply put, a macro is a series of commands that, when executed in sequence, perform a particular function. To learn more about the basics of Macro, read Using Macros to Simplify the Use of a Home Theater Remote Control at TechLore.com. These macros are hard wired to a power button at the top of each activity.
The idea behind activities is to let you create flexible "custom remotes" for things like, for example, "watching a DVD." The action commands let you set up all the steps needed to do that activity, like change turn stuff on, change inputs and sound modes, etc. Then, you can stick all the buttons that you actually use for watching a DVD. You need the playback controls and menu button for your DVD player, your volume and mute for your TV, and perhaps a sound mode button so you can switch your receiver's surround mode. Got an external video processor? Throw functions for it in there, too. The controls for your TiVo... clearly not necessary.
How to create a new activity - step by step
- Different Rooms can have different sets of activities. Select the room this activity will be performed in.
- Tap the plus button in the upper-right corner and select "Add Activity."


- Dijit offers a few basic pre-set activities depending on the devices you've programmed in. Because Dijit found my Roku XD|S, it created a "Watch Roku" activity for me automatically.
- For this example, creating an activity for watching a DVR, create a custom activity so we can go through step-by-step. Select "Custom Activity" from the list.
- On the next pane, you select the devices to be included in the activity. For this example, the necessary devices are the DVR, Denon Receiver, and Sharp TV. From here, Dijit will ask you a few questions based on the devices you selected if it detects multiple devices with channel or volume control. On the final page, give the activity a name. Skip the Activity Actions for now. Press Save.


How to create the Activity layout
The next step is to create your remote layout for the buttons you'd like to use. If you've set up new buttons for devices, the process here isn't much different. The only difference you'll find is that on your "Add button screen" you'll be presented the currently programmed buttons from all the devices you selected. Follow this guide to help you add new buttons if you're not familiar with the process.
Since we're going to be creating a remote for watching a DVR, add the buttons that you would normally use when you watch your DVR. Don't worry if you miss one, you can always go back and add it later.
![]() | ![]() |
You can create multiple pages for your activity buttons. Swipe to the right to access more pages. Remember, the goal here isn't to add every function for all these devices, but to put the buttons you need front and center. You can move buttons to other pages by dragging them to the screen edge. If you need to create new buttons that you don't already have programmed, you can click done, then edit again to select the "Add a new button" option.
Take a little time to arrange and line up the buttons how you see fit, then press done when finished.
Setting Up Activity Actions
Activity Actions seem pretty straight forward in concept, but aren't always that simple to configure. If you're the kind of person that does one thing at a time, like turn on the TV to watch TV, then turn the TV off, it's pretty simple to program. A basic "Power on" macro to watch a DVR would be like this:
TV On - DVR On - Receiver On - Delay 2 seconds - TV Input 2 - Receiver Input 3 - Receiver Dolby Digital.
| | ![]() |
To reorder your commands on the page, hold the three lines on the right of the list to move it up or down. To add a delay (useful for devices that need a few seconds to respond between commands), those can be inserted into your macro.
Activity Action Problems - Making Macros that Work
Issues can arise when you switch from one activity to the next, like going from watching TV to playing a game. If your actions include a power toggle for the TV, but the TV is already on, then your action will shut down the TV when you switch to another activity.
More problems can be caused by including input selection in your macro. If there are commands for individual inputs it will work fine, but if you only have an input toggle (one that constantly switches as you press it, then you won't know which input you're going to land on when the macro executes.
The ideal goal is to make macros that always work. Fortunately, there are a few ways to make that happen: Discrete codes, discrete activities, and known state trickery.
Discrete Codes
Discrete codes are IR commands that perform a single specific function. Buttons like your number keys are discrete, but manufacturers often combine certain buttons as toggles to save space on the remote. Power and Input are the most common examples. Dijit does contain discrete codes for many devices. When setting up your activity, look in the command list for separate power off and power on commands, and separate commands for specific inputs.
If Dijit has discrete codes for your devices, you'll be able to wire in power and input commands since sending a power on command to a TV that's already on won't do anything.
Read Program Your Dijit Activities With Discrete IR Commands.
Discrete Activities
If you look through and discover that Dijit has discrete codes for your inputs (at least on the devices you use to switch sources) but not for your power commands, you can create a separate those specific commands into one activity and omit them from all your other activities.
For example, create an Activity that's called "Power Up/Down." For the power on activity, send a power command to every device. For the power off activity, you can safely send another power command to turn everything off because you know that everything is already on. If you have a device that powers itself off after a certain amount of idle time, you can either omit the power command in the off script or check the settings for that device and see if you can keep it from powering off on its own.
The only catch here is that you need to be diligent about using these activities to start and stop your system. If you go turn on the TV manually then grab the remote, you'll be out of sync.
Known-state "Trickery"
You can develop macros that perform specific functions without discrete codes for devices that have what I call "known states." You need to play around with your device to see how it behaves, but here are a few examples of "known states" to look for.
Example 1: Your TV only has an input toggle that cycles through inputs (Tuner, 1, 2, and 3, then back to Tuner), but has a separate button for the tuner (or you discover that entering a channel number and hitting enter always goes to the tuner). You could program functioning macros by returning to the tuner and sending the appropriate number of input commands to go to the source you want. These macros take a little longer to execute and can be kind of messy looking, but they will do what you want.
Example 2: On many devices like DVD players, the play button will power on a unit and begin playback. In that case, play can be substituted for a discrete power on command for that device. For the off state, wire something in like "eject," which will make you get up to take out the disc/close the drawer and power off the machine manually.
Example 3: Sleep timers can be used to your advantage if they're short enough.
In other words, if you can find an action that brings the device to a known state for input, power, view mode, etc., you can return to that state in your action and go from there.
Conclusion
There are many things Dijit could do in future versions of their software to make programming activities and actions easier and more flexible, so we'll have to see how the Dijit application evolves over time to include more features. Still, with a little time and a small amount of effort, you can create custom activities and actions using the features Dijit offers today. When you're done, you'll have a powerful new tool in your home theater arsenal.
Good luck!
Got questions about your specific setup? Post your question in the Dijit Community forums.








RSS

