Home Control System

I'm still writing this up so come back soon.

My goal with my Home Control system (HCS) is not to indulge myself with technology and gadgets but, to understand how and what technology can improve my quality of life, the efficiency of my home, and reduce my environmental impact. Also important is the user experience. My HCS is designed to overlay the existing infrastructure of my home, to be totally intuitive and to not be intrusive. This means that there is no obvious physical presence of the HCS in my home, other than some additional switches for automated curtains. Everything else, including the light switches must work as expected.

The HCS serves two main functions:

Modelling

The HCS is writen in Java and models the house, its context and the rooms and main objects within them. The house itself has three contexts:

Each room also has three modes:

Space Heating & Cooling

The combination of the house and room context leads to each room having two target temperatures based upon occupancy or lack of occupancy. Control is only possible on a per room basis, if each individual room has a temperature sensor. These same sensors are also used to detect fires and an upper limit is set to signal alarm points.

Water Heating

Traditionally, water heating and space heating systems are linked, often by the same boiler. Whilst this is a cheap solution it is often very inefficient as there is little connecting between the two in terms use throughout the seasons of a year and even the time of day. The HCS models water heating as a seperate and isolated capability and also supports the concept of multiple water heaters and hot water tanks. It assumes that there may be many heat sources available such as solar water heaters, electric heaters or a gas boiler.

Right now, I can't control the water and central heating directly but this will come later. What I am doing is monitoring when it comes on though (as controlled by the time-based control unit in the airing cuboard). I'm also monitoring the hot water tank temperature .

Lighting

First of all, lighting control via the existing wall switches works exactly as expected. Lighting in each room can also be based upon detected and/or programmed occupancy. Room lights can be configured to come on automatically at night (as measured by the twilight sensor) when occupancy is detected and the brightness can also be controlled. Lights can also be switched off automatically if there is no programmed or detected occupancy.

Curtains

As part of the security system, automated curtains will be closed when dusk is detected by the twilight sensor. This is a separate project, yet to be started.

Security & Alarms

The HCS is also monitoring security of the house using PIR sensors and other sensors. It can activate an internal alarm (for when the house is occupied) and an external alarm. The alarms are used for both intruders and fire. The HCS also has the ability to send SMS messages via an SMS gateway. It will send an SMS alarm when the mains power is interrupted or when a temperature sensor limit is exceeded.

Services Usage Monitoring

At this point in time, the HCS is logging mains electricty and gas supply meter readings and some examples of these are on the graphs page. I'd like to fully automate the collection of the data somehow but for now, I'm reading the meters and submitting the readings to the HCS manually. The objective is to get a meaningful set of data collected, from which to analyse electricity and gas consumption against occupancy, use of the water and central heating and the external temperature. In fact, this is leads on to a new project.

I'm also currently investigating how the HCS can monitor the status of my broadband Internet connection.

Security Images & Video

The HCS has the ability to capture and store both still images and video clips from both Axis Net cameras and a USB web camera but I'm still working on this bit.

Implementation

My HCS is written entirely in Java and runs on a mini-ITX PC, which also acts as Network Attached Storage (NAS) and a media server. It is a C800 processor and as such is very low power compared to a typical PC. It draws about 15W typically, rising to 19W maximum under heavy load. One benefit of this device is that it operates from a 12V supply, so I could power it from my HPS. The main devices connected to this PC are on the 1-Wire network but I also use a couple of other Ethernet I/O cards.

Logs

The HCS generates daily logs of activity. Some things are plotted on graphs and to simplify the display, values are logged at the start and end of each day (i.e. each log file). To minimise writes to the IDE disk, I've installed a large USB pendrive, onto which the logs are stored. These are archived onto the hard disk though and the whole machine is also archived to a 400Gbyte NAS.

Database

The HCS reads and writes status and current temperatures, etc. to a database. The database is queried by the web interface to the HCS.

Web Interface

The HCS presents an authenticated web interface, to allow control via small devices such as my Nokia N80 phone and any other web browser.