Ihr Browser (Internet Explorer 10/11) ist veraltet. Aktualisieren Sie Ihren Browser für mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.
Zurück zum BlogAufgeklapptes Mobile Telefon in der Hand einer Person

Matthias Wagler

27.08.2009

Making things talk 01: Controlling lights with your mobile via XMPP

The goal: Learn how to make things talk

In our ongoing process of analyzing and playing with the Internet of Things we had a deeper look at emerging technologies and trends in this context. In our playground for the new ecology of things we wanted to experience what it means to make things communicate. It started with a couple of questions: How can we make things talk? How can we make them talk to each other? And how can we make this happen in real time? What’s the perfect technology to build or prototype applications for the Internet of Things? And how to let them talk to people. In order to do so we got our hands dirty and started with a simple setup.

XMPP – A real time communication paradigm that might accelerate the internet of things

Recently there’s been some buzz going on around the real time web. Mindmeister and Google Wave are just two examples of services that augment their user experience by offering real time communication. Now for the techy part of the story: XMPP is an open protocol that enables this kind of technology. Originally intended to be an open standard for instant messaging it’s also extensible in all kinds of way. Have a look at “What can you do with XMPP?” to get an idea of what’s possible with it. It’s also the secret sauce behind the Google Wave protocol and the OpenSpime project, an XMPP approach to the new ecology of things. Our lab setup was intended to learn and play with this fascinating emerging technology.

The result: Android phone controlling office lights via XMPP

As a result we’ve setup an OpenFire XMPP Server on a windows machine that serves as a central node and cares about user management. We’ve hooked up a Macbook with a simple Flex client that utilizes the Open Source XMPP Library XIFF and controls a lamp via a PhidgetInterfaceKit and a RelayBoard. This can be seen as a Lamp Controller in our lab setup but could later be any kind of embedded device connected to the web.

Hey I’m a designer why should I care about this stuff?

  • XMPP is different approach than standard web development. It’s changing the way we architect software environments and might enable new kind of services in the future. As a designer who builds interfaces and shapes communication with these it’s important to know about its possibilities
  • As XMPP is real time, this kind of environment is a good base for distributed installations at fairs or museums. It’s got a user built-in repository so you could also track what your visitors are doing

What did we learn?

  • XMPP is a very flexible base you can build real time services upon
  • XMPP is powered by a very active Open Source community
  • The model behind XMPP (Distributed environment, Presence Services, One-to-one messaging, Service discovery, Multi-party messaging, etc) are also needed in this new IoT environment
  • Making things talk via XMPP is great fun

Standing on the shoulders of giants

As I believe in the Open Source model and the DRY paradigm we managed this lab session with the help of some Open Source components. We wanted to share this knowledge so you can create your own little Spime Network.

  • OpenFire – Java based XMPP Server (Seems like a very stable platform to build upon. Unfortunately it was very problematic to run it on Mac OS. So try it on Windows XP if you can…)
  • XIFF – Actionscript XMPP  Library (It was quite easy to set up a simple Flex client with the help of XIFF that connects to a server)
  • Strophe – Javascript XMPP Library (You can also check out this quick introduction by Jack Moffit)

To be continued…

Now that we have a basic framework and understanding of XMPP we can further explore related techniques like OpenSpime etc. and make things talk in our office.