Shion + XMPP = Win

Chris J. Karr, July 29th, 2009

While I continue to add new devices to Shion’s vocabulary, work’s also been underway on new ways to control Shion remotely. Pictured below is part of an Adium dialog between myself and Shion:

Shion: XMPP via Adium

The foundation of this functionality is the XMPP protocol. XMPP is an open standard for exchanging XML between nodes on a (often worldwide) network. Shion is using XMPP as a channel for receiving and responding to commands transmitted remotely.

The screenshot above shows a text dialog conducted via Adium. I also plan on including a full XML-based API for those of you wishing to write remote apps to control your environment.

I’m very excited about this, so stay tuned for more developments and further information.

Update: Here’s an equivalent view using the BeeJive IM client on the iPhone:

Shion XMPP using BeejiveIM

I verified that it was working from home using a combination of Back to My Mac, screen sharing, and Photo Booth on my office machine.

7 Responses to “Shion + XMPP = Win”

  1. Scott Newman Says:

    This is a fantastic development, Chris! Shion just keeps getting better and better.

  2. Nÿco Says:

    Why not use ‘Ad-Hoc Commands’ instead of the old commandline?
    http://xmpp.org/extensions/xep-0050.html
    Thus you could have a list of devices in your roster, and just right-click on them, select the command, fill-in the dialog with specific parameters, and send the command.
    It is so much more user-friendly.

  3. Chris J. Karr Says:

    Nÿco, what you suggest is part of the ultimate plan, but I started with the old-fashioned command line as a starting point (this work is far from complete). What I currently have in mind are two basic interfaces that use the XMPP channel: a natural language interface (more flexible than the above example) for folks using vanilla XMPP clients, and a more robustly-defined asynchronous XML protocol that uses something like ad-hoc commands for clients and libraries that implement the extension.

  4. Nÿco Says:

    Wow! Great! ;-)

  5. kael Says:

    Is there any chance we could run Shion on Linux/Ubuntu ?

  6. Chris J. Karr Says:

    kael, there are no immediate plans to port Shion to other platforms until the Mac port becomes sufficiently financially viable that I can indulge in such a luxury. :-)

    That said, I have been releasing the Shion framework (that Shion.app is built upon) as open source for some time now. If you are interested in a port to your platform, you can help move the project along by helping me port that framework to your chosen platform. (The main challenge is adapting the Mac OS X IOKit USB & serial port calls to use Linux’s HID functions.)

    Once I have a Linux-native port of the Shion framework, a full port should be possible using GNUStep. I would need to find a way to license Shion on Linux (Shion.framework is BSD-licensed, Shion.app is proprietary), but that shouldn’t be an issue.

    Until all of these pieces fall into place (and please note that I’m not promising a Linux port quite yet), you might be interested in checking out some of the existing HA software on the Linux platform such as Mr. House:

    http://misterhouse.sourceforge.net/

  7. Chris J. Karr Says:

    One correction to the comment above – Shion.framework is GPL licensed, not BSD licensed. I’m getting my projects and licensing mixed up. :-P

Leave a Reply