intelligent Home Automation System


smartHAuS© does the thinking for you.


What is smartHAuS©?

smartHAuS© is a H.ome Au.tomation S.ystem developed as part of the "Senior Project" course offered at Vermont Technical College. Senior Project is a cumulative course intended to have seniors "demonstrate their mastery of the subjects covered in their program".

A basic set-up would consist of "the brain" (the central system controller), an Ethernet based network, and various devices connected to this network. Typically these devices will be small and low powered micro-controller hooked up via a serial-to-Ethernet dongle. However any device that can communicate over Ethernet is a potential smartHAuS device.

The system has basic features of a home automation system; it receives input from connected device's sensors, and performs some automated task via a connected device's actuators.

The actual implementation of the device(s) is left to the user, as this project is more to demonstrate the connectivity features than actual hardware. Although we have created a couple devices to show off this connectivity.

We have coined the project smartHAuS© because it is an "intelligent home automation system". The main premise behind the project was to develop it such that it is "aware" of the devices and further to give it ability to reconfigure itself as these devices are added and removed. By doing so, novel and convience can be baked into the system by creating simple yet powerful connections between inputs and outputs.


The "intelligence" is a side effect of two features in the project. It emerges out of the system because of an inherent semantic relationship between them.

The first feature is the protocol: dubbed the "Interface for Connecting Atypical Nodes to Home Automation System", or simply icanHAS. All devices in the system communicate on this protocol. It is text based and allows devices to transmit what they are capable of. Devices can say things like "ican: turn_on, ican: turn_off, ican: get_temperature_in_celsius", which informs the brain what options you can send it.

By giving devices this knowlege, and allowing the brain to receive this knowledge, we are essentially allowing the brain to "learn" about connected devices. It may not exactly know that "turn_on" turns on the device, but it doesn't have to know what it does, only that it can.

The other feature that allows for a sense of intelligence is a tagging system for devices. We've implemented a tagging system that allows users to "tag" devices with specific identifiers. For example, you may want to tag a device "light, living room, overhead", and another device "light kitchen sink".

This allows for the you to refer to devices by tags instead of individually. You can instruct the brain to "turn_on" all "kitchen light", or when a light sensor returns +50, "turn_off" all "light".

With these two systems in place, it becomes trivial to hook up another device to the system. Simply plug it into the network, authorize it in the brain, tag it based on where it is or what it is. Nothing else needs be done because all the scripts referring to applicable tags will automatically adjust to account for your device.