I’ve been wanting to do this post for a while and I’m finally able to get around to it. The thought is to use a widget to represent a device in your home that can be monitored and controlled. The term “wiring” may be misleading, but the concept is to create some sort of virtual connection between the widget and remote device. In this example I have a light bulb widget that monitors and controls an LED. The LED resides on the SensorLogic QA table where we have lot of different devices that enable us to easily provide remote demos. You can see in the picture below that the table is monitored through an Axis network camera:

In the image above you can see the light bulb widget next to the video stream of the QA table. The light bulb represents the LED in the off state. It’s hard to make out exactly where the LED is, but you’ll be able to see it in the image below. My ultimate vision is to create all sorts of widgets that represent different devices in your home. The light bulb widget can ultimately be connected to the lamp next to your bed or on your front porch and doesn’t have to be tied to an LED. Using SensorLogic’s M2M Platform you could add the intelligence to tell the porch light to turn on every night at 8:00PM and off at 7:00AM. The possibilities are endless.
The light bulb displays the current state of the LED. When it’s double clicked a command is sent to the M2M Platform telling the LED to turn on. All of this is done with some AJAX, Web Services, and SMS magic. I will go into more details of implementation in a future post. The developer is ultimately responsible for the UI piece which handles the presentation of the widget and the hook into SensorLogic’s Web Services. The widget can be run in a web browser and I’m working on a version that’s compatible with Konfabulator. I also intend on getting a version that runs on a J2ME compatible device. The goal is not only to connect all sorts of devices in the home but provide a rich user experience….something that is exciting and fun for the user. M2M doesn’t have to be a dull experience and in my opinion should be extremely visual.
After the light bulb has been double clicked you’ll see that the LED eventually turns on. Let me explain what “eventually” means. From a UI standpoint the widget is double clicked and the appropriate image is displayed, in this case the light bulb’s on state. The problem is that the LED is not truly on yet. There’s the delay of the command getting to the M2M Platform and the delay with the SMS making it down to the device. The device then takes this SMS message, processes it, and either turns the LED on or off. This entire process can take up to a minute. If you look at the difference in timestamps between the image below and the one above you’ll see that it’s about 15 seconds shy of a minute.

I’m working on some different concepts of how to manage when the UI displays a state that isn’t truly indicative of the device state. This might be some sort of greyed out “pending” image that lets the user know that the command is being processed. I’ll post the completed concept when it’s ready. If the device that controls the LED were connected over ethernet then there would be much less of a delay and the “pending” state might be unncessary.
With all this being said there are a couple of things that I’d like to point out. Connected devices are coming. Actually, they’re already here but I wouldn’t consider them mainstream. Web developers should grasp the concept of M2M and what it means to them. There’s huge potential here for developers to create applications that tie to devices in the home, field, car, office, etc. Think of all the insanely talented developers out there writing applications and the potential of these apps/widgets representing data from connected devices.
The other point I’d like to make is that there needs to be a developer community. At SensorLogic we’re talking about it and I’m starting to pull together bits and pieces and trying to formulate a plan (at least in my head). I think of Amazon, Google, and ebay that released a set of APIs for developers to use and build applications. These companies saw the benefit in doing this and couldn’t even fathom the amazing applications that would be developed using their technologies. SensorLogic already has a majority of the infrastructure in place and I’m going to be sharing any knowledge I can from a UI perspective.
One last note: I’m working with a network enabled thermostat from Proliphix that enables you to remotely monitor and control temperature. I’m going to have a nifty widget available in the next few days and will post the outcome. It seems to a very powerful device and even has a web server built in. I’m excited about the potential of this device and am looking forward to getting it all hooked up.