I am a low-voltage programmer. Amid the madness in the markets, I got out of Madrid and flew my ass to Good Old Sussex by The Sea. At 45 min from Heathrow, it is actually a workable destination. That and it had a superb restaurant in a the form of Croucher's, so that changed my whole perception on british cooking and I had a great week.
I was going to this KNX certification by a shop called Ivory Egg. The KNX certification specifies how devices interact in distributed systems. It is a firmware layer specification that enables domotics. The devices are made of sensors, like a switch, a light sensor, an IR eye, a presence detector and of actuators, or actor that actually do things in the home (turn on lights in this configuration). They are powered by the bus (29V) and self-reliant in that they don't need a controller. OpenRemote could be middleware in this field.
You can get certification on basic features, which is a 5 day class including certification. I passed the cert with 84%, aced practice (yay!) at 47% and lost a point because I didn't write my name right in the project and 2 points because I hadn't set the timer on the blinds. Silly me. I passed the theory, with 37%, but will say that the test was tricky. Anyway, I am actually quite proud to be a certified low-voltage programmer. I can do programming magic on twisted pair :)
What started in Europe as an Industrial standardization of legacy standards is finding its way to high-end residential. Recently China became a member by way of the government implementing the Olympics on KNX. That means lights, blinds, heating, cooling, security and grouping of all of these functions if necessary.
The basic programming notion is that of groups. What is shared is some devices emit a message and others listen to that message. A Class or Type is defined by bit, 2 bit, nibble, byte, 2 bytes. And that's it. So either your devices share a critical bit together or they don't. That's is known as type-safety in the firmware world and it works well, with the ETS tool not letting you drop a device in a group that doesn't have a compatible bit signature.
The really cool part in it is that actuators listen for group signatures (of the address type, 2/3/4 for example. This way they actually publish or subscribe to a topic. It is a rather clever way to get hardware to implement publish and subscribe. The point being that you don't need a controller to have a functioning system. Your physical layout of green cables and high voltage is a working configuration. The positive way to see that is that an additional controlling layer can offer functionality without interfering with the physical setup.
For example one thing that was a bit frustrating is that in order to test any hypothesis, which is the way you normally learn, you would have to round trip through physical programming. That was a slow USB connection to the physical system. Clearly a mock object, in software that would emulate the behavior of the physical device and would let you debug your installation in a completely virtual environment would have great value in terms of productivity.
I grew a new appreciation for what KNX is and isn't. It isn't what I thought it would be, a full programming model for HA that we could implement. But what I thought it would be doesn't matter. What is important is what it is. It talks about getting devices to share bits, in a Remote Procedure Call (RPC) distributed programming model way. It is cool that it implements an RPC in firmware when you think about it. It does a good of it too. That is something.
It also would be a big market for OR to tap into. With KNX as a standard there is an ever growing community of members (I am number 29970) that implement sensors, actuators, software, services or what have you. We plan on offering something soon from OR, like an ORC manager with gateway into KNX. Program iPhones and gateway into KNX, I validated with the teacher that it would be something interesting.
I have also developed a sense that this will take a long time, like 5 years. Which is cool by me since I was actually looking for a new project anyway. I don't mean a job but something I can prioritize in my life. I like the people, I like the field, I like the tech, I like what we can do with Open Source in the field.
Good thoughts on the business and the ecosystem. The role of the installers for example. This is long running and I need some real work besides indulging a financial news nascent addiction.
So I have bought a KNX test bed, that I plan on driving from a Mac and Java. Something to turn on lights, dim them, detect presence and light. Something to have fun with my boys and girl. Look! daddy can turn on the lights! I have to express the childlike wonder at seeing your lights dim correctly. The test bed cost me (Open Remote :) $4000. It is an expensive toy. Maybe I can get into the habit of funding research through OR for me and some selected friends. But anyway I have it here on a bench. It includes cool hardware from guys in Spain (ZENNio) which is based right out of Toledo. I got to go visit sometimes.
A good friend and member has been banging out code for OR while on vacation and has put seeds out. One is Beehive, and we will be releasing PR about that one, and the other is the manager. A graphic iPhone UI assembler with drag and drop built on GWT. I almost have my work cut out for myself :) I need to plug in Calimero (a Java library to KNX IP and extend the tool to give iPhone control and visual programming of groups and voila, I know the teacher will give me an A mark ;)