Welcome to Smarthome

My idea was that code written in Prolog would make a great central “brain” for a home automation system, and it has worked very well! My Smarthome system is a distributed system running on a combination of Windows and Linux machines, with all the components implemented as modules which are currently connected via CORBA. I can move modules from machine to machine while the whole system keeps running. The system isn’t just designed to be a fancy remote control for devices (although it does do that), it’s also designed to collect information and deliver it to me in useful ways. A secondary goal of the system is the educational spinoff — techniques I’ve learned and developed while working on Smarthome have often become useful at work.

Smarthome system architecture diagram

This is the architecture of the system as it is working right now.
Click on a link below for a description of a component (more will appear as I document them).

SmarthomeServer, SmarthomeServerHistory, ChatServer, ChatServerInternals, ChatClient, TheBrain

original smarthome (circa 1995), first smarthome server (1998-2002)