Normally, James Robertson and Niall Ross are really good at documenting talks at Smalltalk Solutions. For one talk, though, James was attending Niall's presentation so neither of them could attend the other. I took a few notes and I'm happy to pass them along.
The talk was from Thomas Stalzer of Object Dynamics. He said that this was the first project that he did for himself and just for fun. He may commercialize it later but no definite plans have been made yet.
Thomas started in Smalltalk in 1990 and worked for IBM and later Enfin. When he left Enfin, he started Object Dynamics working in Banking, Insurance, Production and other sectors.
His interest in home automation started when he remodeled his house. He decided to add automation to help make life a bit better. The example he gives is that when he opens the dishwasher, the light above the dishwasher turns on. There are many things he can do from lighting to controlling appliances that make things more convenient around the house.
The application is developed in VASmalltalk. It controls appliances (stove, dishwasher, etc), power and lights, network based equipment (www, e-mail, weather, radio, stocks, etc), custom systems (garage door, alarm, A/C) and multimedia (MP3 servers, AMX, Bose, Russound, uPnP).
These systems each have their own unique interfaces and there was no integration. His system gets these devices to work with each other seamlessly. He does this by abstracting the physical layer from the application layer. Each device has a driver that controls that device but to upper layers presents itself as attributes, events and actions that can be wired to other components in a similar way to the Composition Editor of VASmalltalk. For example, the "Door Open" event of the dishwasher can be connected to the "Lights on" event of the light above the dishwasher. The name of a song playing on the MP3 player can be connected to a display that shows that name.
Some features he has programmed in with these event-action or attribute-attribute connections include:
- opening the dishwasher door turns on the light above the dishwasher
- dishwasher can be turned off with light switches
- if the house is locked, all appliances, music, etc are turned off
- the lights in the living room blink when the dishwasher or washing machine are finished
- if a motion detector is triggered, the light will be turned on (50% brightness at night)
- if the house is in "security mode" then ringing the doorbell or a motion detector can cause the sound of a barking dog to be played from an MP3 player inside the house
- a sensor on the floor of the bedroom detects when you step out of bed and turns on LED lights along the floor to help you get around without blinding you
- when an e-mail is received, a light in the room flashes
The system is programmed with a graphical interface that lets you draw connections between units shown as boxes on the screen. A 3D simulator with a model of the house lets you try out the programming without connecting it to the actual house controls yet. Once connected, the simulator can show and control the devices.
When asked if the system ever gets messed up causing you to lose all control over the house, he answered that functions are divided into core and luxury functions. The core functions will work whether or not the system is operational. You can always turn on lights from the switches, turn on and off the appliances manually and control the A/V equipment without automation control. The luxury features require the system to be operational. If you push the "theatre" button, it closes the curtains, dims the lights and turns on the A/V equipment. This can all be done manually if the system is down.
When asked if this affects his buying decisions for appliances, he answered that most high-end appliances already come with interfaces for automation. In some cases, there was an appliance he would have liked to have bought but it didn't support automation so he bought another instead.
Does he plan to commercialize the system? Perhaps later. Plans haven't been made yet.
Can other household members use the system? Using the system is easy. He's normally the one who does the visual programming to connect everything up.
Has he had any crashes? Only three he can remember. One was a hard disk crash which required a hardware replacement. The other two were caused by software problems.
What kind of interfaces do these appliances have? It seems that RS-232 is a popular interface for appliances.
I'd like to thank Thomas for sharing his stories with us and showing his system. I found it a fun and interesting talk.