Home Automation Server Rebuild
This was an unplanned project, to rebuild our Home Control System (HCS) server, following a hard disk failure on 2nd May 2013.
Our original home automation server was built in early 2003 and based around a Mini-ITX PC running the Windows 2000 operating system. This was a VIA EPIA-M800 C3 motherboard running at 800MHz and with 512MB of RAM. Although it had both a processor and case cooling fans, we had no problems running it without them. It used a Seagate Barracuda 120GB 3.5" hard disk. A primary factor in using this device was that we could run it from a 12V dc power supply and this made it ideal to use with a 12V UPS. Typically, it draws about 11W of power.
We originally used Windows 2000 because the drivers were readily available for the various bits of hardware we wanted to try out. This included good support for serial and USB devices. Windows 2000 proved to be very reliable and this server ran for over 7 years without any issues or down time. We had to replace a few cooling fans but mainly Windows Updates were the only maintenance required.
To avoid numerous writes to the hard disk, all of the events generated by our HCS are logged to a solid-state, 2GB compact flash memory card. This same memory device is also used for our database.
We have kept the Windows 2000 based server (HCS1) maintained as a fallback in case of situations like this and the use of Dropbox makes the change over very quick and painless.
In July 2010, we decided to move away from Windows 2000. Microsoft had stopped supporting this operating system. We decided to move to Windows 7 (Home Premium) and also upgraded our hardware to a new VIA Nehemiah 1.2Ghz processor. This requires a fan on the processor heatsink but, it is very quiet. In order for Windows 7 to run a decent speed, we used 1GB RAM. We re-used a 30GB 2.5" hard disk from another machine, something we now regret doing. The disk was large enough but it failed in April 2013.
At the end of April 2013, this new machine had a hard disk failure and required a complete rebuild using a new hard disk. We used a 40GB hard disk this time. This provides plenty of space for the operating system and data that we generate.
Installing Windows 7 is a relatively quick process. The bit that is really time consuming is the following Windows updates. There are over 140 of these and this includes a major Service Pack. It is also not helped by the fact that some of these updates are not compatible with the hardware and they need to be installed in the correct order.
The software we currently use on this machine is:
- Dropbox - This is used to maintain a backup of the source software and all configuration files and logs. This also enables remote code editing from our other devices and remote access to the logs and camera footage captured.
- Mirrowbow USB IO board drivers are required.
- FTP Server - Our IP cameras are configured to FTP captured images and video onto this server, within the Dropbox synchronisation folder. This requires us to have a separate FTP user account.
- EditPlus is our preferred editor for Java, XML, HTML, etc.
- Apache Web Server is used to provide web-based control interfaces.
- Java - Our whole home automation system is written in Java.
It was quite a shock to have to live without any home automation for a short period of. You really do get used it and just assume stuff will happen automatically within a smart home.
This hard disk failure was further validation of our smart home automation philosphy.
Whilst a single point of failure like this is not a desirable feature of our design, it is pretty much unavoidable. It is only by passing all events through a single point of intelligence that complex decisions and control can be made. That said, there is some benefit to adding simple control loops in devices like our Z-Wave gateway but, these are also single points of failure.
To mitigate against this single point of failure, we maintain a backup machine with the same level of functionality.
We are actively looking at a LINUX-based server for the next upgrade and have already ported most of our software to a Raspberry Pi. The main advantage of a Mini-ITX device is that it supports a hard disk and has a proven reliability and performance.