Roomie Agent 2.1 Now Available

Roomie Agent or OS X 2.1 is now live in automatic update for existing customers and in the store for new customers:

roomieremote.com/store/

This release includes the following major new features:

  • SmartThings Triggers: Roomie Agent will now accept commands from a SmartThings Hub. See the Roomie Agent SmartThings Setup Guide for instructions on enabling this support.
  • Time and Timer Triggers: Create actions such as "turn off the TV in 90 minutes" or "open the shades at 9am". Configuration of this feature requires Roomie 3.1.0 or later which is expected to be available Q1'2015 and is now available to beta testers.
  • External Control: An interface has been added to allow any Roomie activity to be opened from external systems capable of HTTP commands.

Thank you.

I would like to request a icon for Yosemite’s Dark Mode in the next release. I can’t find Agent in my menubar as is.

Good catch. We have fixed that in a future release.

Thank you.

Roomie Agent 2.1.1 is now available via auto-update and for new purchases. The following improvements are included in this release.

  • Dark Mode: Added appropriate icon behavior for Yosemite's Dark Mode.
  • Diagnostics: An option to activate collection of diagnostics has been added to Preferences along with sending the diagnostics to Roomie Support.
  • Memory: Under certain conditions, Roomie Agent was using more memory than it should over time. This has been resolved.

Thank you.

Can you tell us more about the External Control feature (API, sample…) ? It look very interesting for me to launch activity from my TSU9400, so I’ll keep Roomie synched when I use my old hard button remote.

Thank you

We’ll format this into a DDK update, but this content should be what you need:

Roomie Agent is able to trigger an activity in response to an HTTP POST request submitted to Roomie Agent’s built-in web server. The URL used to run an activity is as follows:

:47147/api/v1/runactivity

(Replace in the above URL with the IP address of your OS X system running Roomie Agent.)

The data POSTed to the above URL is a JSON data structure of the form:

{
‘activity_uuid' : '637668FB-89BC-49D1-B43C-7D081088C93C',
‘toggle_state' : ‘on',
‘delay' : 60
}

The ‘toggle_state’ parameter is only applicable to toggle activities (those with an on or off setting). To toggle the activity off, specify a value of ‘off’ instead of ‘on’. If the activity is not a toggle activity, the entire ‘toggle_state’ line should be omitted.

The ‘delay’ parameter is optional, and if present, specifies how many seconds to wait before triggering the activity. If a delay is specified, it’s value must be greater than or equal to 1.0.

JSON’s formatting is somewhat fragile, so care should be taken to properly quote the parameter names and values, and also ensure that commas appear after each value (except for the last — 60 in this example).

The value 637668FB-89BC-49D1-B43C-7D081088C93C should be replaced with the UUID of the activity that you would like trigger. The activity UUID can be found in Roomie.plist (Roomie Agent’s “Backup Configuration…” menu command is useful for creating a copy of the configuration). A text editor such as TextMate should be able to display Roomie.plist, wherein the activities for each room will appear in a “sources” section. Here’s the activity from the current example:

{    actions = ( );
guideUUID = "B1E7837D-8132-4718-8828-3512E81D0B73";
icon = "logo-roku";
name = "Watch Roku";
open = "1CA6C27B-2AC8-4E73-9F64-1490EE5931C5";
transition = 1;
uuid = "637668FB-89BC-49D1-B43C-7D081088C93C";
volume = 3;
vuuid = "E15A12CC-BB93-4673-AB1F-AEDB91B297D4";
},

Note the “uuid” for the above activity is "637668FB-89BC-49D1-B43C-7D081088C93C”.

As an alternative to opening Roomie’s configuration, the list of activities and their UUIDs can be obtained from Roomie Agent’s web server by using the following URL (this can be opened in a web browser such as Safari):

:47147/api/v1/activities

Each activity listed in the output will look something like:

{
"icon" : "logo-roku",
"roomuuid" : "AB4B9EC8-2BC2-48BA-8A9F-4868281E2249",
"name" : "Home: Watch Roku",
"uuid" : "637668FB-89BC-49D1-B43C-7D081088C93C"
},

Note: The uuid will contain a ‘+’ or ‘-‘ at the end of the string for toggle-based activities. This extra character may be removed or left intact as it is ignored by Roomie Agent.

Putting it all together, the following can be run from a command line to run an activity:

$ curl ‘http://10.0.0.50:47147/api/v1/runactivity'; -d ‘{ “activity_uuid” : "637668FB-89BC-49D1-B43C-7D081088C93C” }'

Thank you.

i was finally able to make this work after a fashion, after much frustration.

My iPad mini does not always switch to the activity I am POSTing, nor does it send all the startup commands (seems to not send my IR automatic command, a power toggle for the motorola cable box, and doesn’t send my Wake on Lan of sony TV

But it seems to be coming along, I love this concept. I am HTTP POSTing from my ISY-994i, based on a motion sensor at the front door, to turn on a PIP activity with one input being outside security cameras. very cool!

@jbwood1 - Can you please provide an example of the HTTP post code you are using? I am trying to do something similar but am struggling using the instructions above.

Hi, I’ve studied the 12/29/14 post in which you describe the steps to run an activity via command line.

But I am trying to figure out how to invoke specific commands that are defined within the context of a device or within an activity. For example, I have a device configured that uses IRTach unit to control a portable air conditioner. One command is an On/Off toggle, the other two commands are List functions, each with three options collapsed underneath them.

I’d like to invoke a specific command associated with the device, not the higher level activity.

Is this possible and and if so, is there documentation for how to do it?

Thank you,

-d