HackersNL talk on home automation and Lua

So yesterday, I gave a talk on home automation at HackersNL in Utrecht, nice and friendly audience and plenty of new ideas.

I’ve uploaded the slideset, available here (downloaded 1269 times). Furthermore some additional comments and links;

  • Home automation site; check out bwired.nl, awesome. Nothing to add to that.
  • Bwired also has a generic home automation forum, not specifically related to a server product.
  • xPL and all its related info can be found on the xPL project site
  • For the internet-of-things there is a great open source project started by Sierra-Wireless. It is being run under the Eclipse umbrella and already delivered some nice results. Check out Koneki (LDT and OMA), Mihini and Paho.

UPnP forum logo
For a start with UPnP there is a lot of documentation on the forum pages. But there is no real shortcut to UPnP, but here’s where to start

  • To get a feel of what it can do, download the UPnP Developer Tools (runs on .NET, so might also work on Mono, but never tried). Use the DeviceSpy utility to examine some of your own devices and fiddle with the actions (Tip: right-click on a service and subscribe to events). Also give the included “Network Light” sample application a try (to fiddle with from Device Spy).
  • Read the UPnP Device Architecture 1.1 document (UDA), even if you don’t make it through, focus on sections;
    • 1 Discovery (introduction only)
    • 2 Description (introduction only)
    • 2.3 Device Description
    • 2.5 Service Description
    • 3 Control (introduction only)
    • 4 Eventing (introduction only)
  • Browse the device and service specifications. Start with “Lighting Controls_1” which are fairly easy to read, and once you get the concept of those try something more challenging like the Media Server/Renderer stuff.

It was a fun evening, thanks for the invitation guys! If you have any questions or want some more info, just drop a message below.

 

 

Update to the UPnP – Lua gateway engine

Just posting this as I’ll be away for a couple of weeks, so what did I fix since last post;

  • Todo: UPnP security service has not been implemented (must have!)
  • Todo: Some of the wrapper code (mutexes, waithandles and sockets) are not complete for all platforms yet, currently it only runs on Windows, but this should be limited as the wrappers themselves have all been created already
  • Todo: Solid logger, as its designed to be used in the background without an interface, it must provide solid logging, even if only for troubleshooting and debugging
  • Todo: Serial library; currently network connections are supported through the LuaSocket library, but serial connections must be added to (probably through ser2net, but that lacks a windows version AFAIK)
  • Todo: The demo is a single Lua file (which is totally crap code), and should be replaced by a Lua side object oriented framework to access and modify UPnP devices/controlpoints

Continue reading

All new UPnP gateway concept; a scriptable UPnP engine

Today I finished the first working sample of the new UPnP gateway I’ve been working on, a major milestone! Stepped out of .NET and changed to platform independent code and libraries. Punished myself with hardcore C, multi-threading and multi-platform all at once, but it all seems to start working now.

 

So what is it?

Its a Lua scripting engine, glued to the pupnp library. Lua is a small, fast and very portable dynamic scripting language and pupnp is a portable UPnP library. This creates an engine that will run on any platform (Windows, Mac, Linux, or even embedded on a NAS or your wifi router), while at the same time allowing users/developers to write code in Lua. So it takes away the need to do all the complex stuff in hardcore C, threading, platforms, etc. The Lua scripts will simply run on all platforms, unmodified.

Continue reading

Updates and bugfixes for the UPnP gateway and xPLGirder

Today I uploaded yet another update for the gateway and xPLGirder component. Mike C put it to the test and had a list findings, most are resolved now. Besides those bugfixes the component now also uses lua events (based on the component model) besides the regular Girder events. This should make it easier to develop lua code that works with the xPL component.

UPnP bugfix for xPL gateway and xPLGirder

Here’s another update of the gateway and the xPLGirder component. It had a nasty (and hard to find) bug, which took me nearly a day to find and fix (fixing was actually 1 minute). There is also a functional update (to the xPLGirder plugin) that accompanies the bugfix; if for some reason the announcement of a UPnP device does not complete, this is now detected and any missing elements will be re-requested.

UPnP gateway and xPLGirder update

A few days ago I updated the gateway (I even gave it its own page now) and the xPLGirder component (the only client for the gateway so far). On the Girder forum there are now some users experimenting with it and it seems to be working pretty well. It already outperformed an IR controller 🙂

Great to see it finally comes to a use beyond just me!

All new UPnP-2-xPL gateway

It’s been more than a year since I actually updated the gateway, but this is a major overhaul, still early stage, so probably going to be buggy.

The xPL schema set has been revised and is more thorough, the entire UPnP device description will now be announced and it will be done in a more structured way (check the readme for the schema details). Obviously there is no compatibility with the previous version. But that was a piece of disposable-test-code anyway. Continue reading