After several delays, we have agreed upon the structure for our LuaUPnP device and have framed out the basic code and are finalizing it to get it to the point of being in 'beta' for release. The good news is it's worth the wait. Along the way we changed the direction a few times and the result is something much more powerful and flexible than originally envisioned. All generic I/O (infrared devices, rs232, etc.), and the Lua engine are combined into one module which also turns everything into UPnP devices, and allows your Lua script to easily control other UPnP devices. And we're building a collaboration model.
This means that if you, for example, add a new model of infrared-controlled TV to the system, and learn some infrared codes, it should take only a couple minutes, but that TV is now a UPnP device, and any UPnP control point or remote control in the home will see it and be able to control it. There are several projects now creating generic user interfaces built on UPnP control points. So with this new direction, all your Z-Wave, I/R, Lua, etc. devices will be able to control them.
We've created a wiki which explains the system, includes some pseudo code and a general overview of the API: http://wiki.micasaverde.com/index.php/LuaUPnP
We welcome user feedback on this thread.