My Automated Home: Tom Lawrence – Home Brew X10 Plus XMBC Control
This months My Automated Home feature comes from Tom Lawrence, a final year student at Staffordshire University. Along with his friend Andy Jackson, he has created a bespoke C# home automation system which controls X10 and XBMC with clients for Android and Windows Phone.
I suppose my setup is around 3 years old and started when I moved out of Halls and changes each time I move house… In the beginning there was the Windows Home server with a hacked Xbox running XBMC. Next, during my placement year the Xbox was replaced with an Xtreamer and now I’m back for my final year I have a rather large HTPC connected to a rather small computer monitor in the living room. Being a student I’ve had to work with a low budget but it’s not all bad; the HTPC does have 5.1 surroundsound!
I’ve been keen on home automation for some time and could see myself having some sort of system when I finished university and was more settled into a house but I never really took any steps to start such a system. That changed after I was linked to avbrand.com by Andy, a friend with very much similar setups and plans for the future. After reading the site I knew I had to create a similar system, so I am…
I knew of other systems such as mister house but I didn’t want to customise a system to my needs, I wanted to make my own so, HA was born.
I mashed together some code, I’m not a programmer, I have had various programming modules at University but my degree is in networking but it wasn’t long before Andy, who is a programmer got on board and it took off. Andy has does a lot of work on the network/communication side allowing it to be scalable for the future. It’s now become very much a joint project between ourselves. So that is it?
HAServer is the brains behind the operation running on the Windows Home Server. Its written in C# and started out executing various scripts based around TVSorter, an application Andy previously wrote, before I was RDP’ing to the Windows Home Server so it was natural for this to be the first task for HA to do.
It now has a small feature list but considering it’s just over a month old, stable and we both have final year projects we should be working on its pretty impressive if you ask me, although a lot of work recently has gone on behind the scenes code rather than features as such…
- Directly controls X10 Modules via CM11u
- Executes various tasks with a task scheduler
- Interfaces with XBMC
- WOL Support
- FTP Upload
- HTTP API
The idea we have is that HAServer will do all the important functions in the background and clients are mere frontends to the system. One example of this is the core client is settings-less. It receives the server IP via broadcast and downloads the settings from the server which the client then can update. The server has a database but communicates to clients using JSON via TCP or the HTTP API.
HAClient is a fully blown client. The idea for HAClient is that it will fully support HAServer and sub clients will do specific functions. HAClient’s feature list includes
- Requires no initial configuration
- Allows configuration of HAServer
- Interfaces with XBMC, displays audio and video information and some remote control functions
- Supports all server functions
- Sub Clients
The idea behind Subclients was that they will do specific things and not fully support all server functions. This was something that would happen after university but we could not resist developing a few.
HAWP7 – I in the last couple of days have replaced my iPhone with a HTC HD7 and quickly made a client for Windows phone. Currently only supporting the x10 function via the HTTP API it’ll soon be able to execute scripts and wake computers.
HAAndroid – Andy has an Android device and created HAAndroid. This client supports X10, WOL and Tasks.
HAPython – This is a simple script allowing XBMC from the remote to turn on/off x10 devices.
Future Plans – The main plan at the moment is the boring stuff, make sure what we have is working and comment what we have done so we don’t forget after University when we have more time to work on it.
- Integrate with Windows Home Server, make an addin for the console…
- Make a client for the O2 Joggler
- Integrate more with XBMC (x10 movie mode etc)
- Integrate a CCTV system
- Have a standard interface between HAServer and Arduino
- Interface with our next houses, have to wait and see what they offer first though!
We have no plans to release this as a system but I like to think we could one day. Currently we both run the application at our student houses and both lucky have got jobs after university so once settled I suspect the feature list will grow, we have many ideas mostly all requiring money to purchase additional hardware. Its definately an exciting project..