Category Archives: Home Automation

Update 29-3-16

Bit of an update on the current state of projects, things have slowed down a lot during summer as I have been working on a lot more things outside, with the weather cooling down now work on some inside/electronic projects can begin again.

The mysql, weather station and temp sensors have all been working well with now over 300,000 data points giving per minute data points on most for now just shy of twelve months.

Overall database size has grown to around 140mb for the whole set of sensors.

dbsize

The laundry fan has been installed and added to one of the relay boards and both DHT22 sensors have been mounted. One in the laundry and one in the bathroom.

Laundry Fan with DHT22
Laundry Fan with DHT22
Bathroom fan with DHT22
Bathroom fan with DHT22

The RFID system on the front door as also been working flawlessly now for almost 18 months with 1750 entries during that time.

webpage

 

The outdoor sensor array still hasn’t quite made it from it’s temp cardboard home however the final two sensors have arrived

The Sharp GP2Y1010AU0F dust sensor and the ML8511 UV sensor.Β  So now I can at least finish off the software side on the Arduino and do final testing before finding a case and mounting it outside.

DSC_0214

 

Doorbell camera has also stopped working. Not sure if it’s just a corrupt SD-Card in the Raspberry Pi if it’s gotten a bit too hot over summer and cooked, going to take it down in the next few days and find out.

Another project that has been collecting dust for a while now is a MAME arcade machine I started sometime back. Needs a couple of new joysticks, a tidy up and probably a new PC to drive it as the one in there is a little under powered and generates a lot of heat.

Some cable management would go astray either πŸ˜›

DSC_0209

DSC_0220

Quick look VoCore

Had a package arrive the other month with my VoCore which was a project I baked on Indiegogo a while back.

The VoCore is a tiny computer running OpenWRT with a 360mhz processor and 32MB of RAM and 16MB of flash with built in Wi-Fi, two 100mbs network cards, USB and 28 GPIO ports.

Perfect for projects that have limited room or that require WiFi.

I knew the board was small but really didn’t think it would be as small as it is, here it is next to a USB stick:

DSC_0854

The size (and my soldering skills) made soldering connectors onto the board quite a challenge.

They do make a dock for it which breaks out the USB and Ethernet connectors but prettyΒ  much doubles the price of the unit.

Initial configuration is done over serial with the provided USB-TTL converter but first power and serial lines have to be soldered on.

DSC_0863

As you can see my soldering skills aren’t the best on these small pitch connectors I will have to redo them before I use the unit in a permanent installation.

DSC_0861

After firing the unit up and connection via serial I reconfigured the wireless to operate in client mode and connect to my home Wi-Fi and was then able to connect via SSH:

vocore-login

My intention is to use this board with a USB Relay board to operate my garage door as well as other projects out the front of the house, this saves having to get a cable from the house into the garage which would be a nightmare.

Future projects may also include Wi-Fi connected appliances such as washing machine, dryer, kettle and the likes due to the small size, GPIO pins and cheap price.

Update 1-7-2015

Bit of an update, I’ve done more work on the back end and data collection and have ordered parts to begin a outdoor sensor array to compliment the weather station.

First upgrade was to my NAS which runs unRAID which previously had VirtualBox running on top of it to run the Webserver and Windows 7 VM for the home automation. The new version of unRAID includes the KVM visualization solution.

After updating unRAID and converting the VirtualBox images over everything was back up and running all with a nice web interface:

unraidvm

 

This allows for much easier control of the VM’s as well as start/shutdown with the NAS.

Two new data sources have been added to the system the first being the data from my front door RFID system which unfortunately doesn’t have a direct interface with mysql (it uses access) so I found a program that pulls data from msaccess into mysql here which I configured to poll every hour and insert into mysql.

This has been added to the web interface which now shows the Doorbell as well as the RFID data:

doors

Clicking into RFID gives the last 20 entries/exits allowing a quick view of who has been home over the last few days.

The second data source is CPU temperature from the Doorbell Raspberry Pi which was mostly out of curiosity but also to see how the Raspberry Pi was holding up to living outside.

I used a Python script to poll the data every 5 minutes and insert it into mysql, you can download the script here.

Below is a graph of the Pi temperature over a 24 hour period:

doorbellpigraph

And the added page for the sensor:

doorbellpi

Few changes to the internal web interface to show number of records for each sensor as well as min/max/avg of both temperature and humidity from each sensor:

tempreadings

minmaxavg

Mostly minor changes but gives a bit more info on everything.

 

I’ve ordered parts to build a outdoor sensor array which will be based off an Arduino with Ethernet shield and the following sensors:

DHT22 – Temperature and humidity

MQ-9 – Carbon Monoxide and Combustible gas sensor

BMP180 – Barometric pressure

ML8511 – UV level sensor

I may add a few other air quality sensors as well over time, this will be added to the data from the weather station and uRAD monitor data to give a good overview of outside conditions.

Update 21-5-15

Just a bit of a quick update on everything:

After running alright for about a month the Raspberry Pi in the doorbell locked up a few times and then stopped booting, from what I can tell my estimation of voltage drop over the PoE setup may have been a bit off and fed the Pi a bit too much voltage so I’ve bought a LM2596S step down voltage regulator off eBay and will run 12v over the PoE and then regulated 5v into the mini USB of the Pi.

Doorbell system is now back up and running and hopefully should remain stable now.

Voltage Regulator
Voltage Regulator

 

I’ve done a bit more work on the internal house website to add the ability to quickly see the pictures taken from the doorbell camera as well as current data from my uRAD Monitor.
It gives a good overview of current weather,Β  sensor data and last ring of the doorbell. As more sensors are added I’ll add them in here. Clicking on each of the sensors brings up the last 100 entries and clicking the front door brings up the last 20 doorbell presses.

uRAD Monitor section give the current radiation counts per minute as well as an average and the links below create graphs showing CPM vs wind, rain fall and temp/humidity.

Updated House web page
Updated House web page
Last 20 doorbell presses
Last 20 doorbell presses

The software that came with the weather station was pretty basic so I got Weather Display which is much more powerful and can export data directly into mysql as well as upload to a website, etc.

Weather Display
Weather Display

I’ve found the wireless from the weather station to be a bit unreliable hopefully just due to some flat batteries.

I’ve added new graphs to match weather data with radiation data from my uRAD Monitor, you can see flat sections in the graph where the weather station has not reported back correctly:

Rain vs CPM
Rain vs CPM
Temp and Humidity vs CPM
Temp and Humidity vs CPM
Wind speed and gust speed vs CPM
Wind speed and gust speed vs CPM

 

A bit more work has been done with the home automation system. I replaced the 4 channel relay board with an 8 channel board which will do low voltage operations (12v/5v) and have re-purposed the 4 channel board for 240v switching as to keep LV and HV separate.

This has allowed adding of several more devices without buying expensive Insteon modules for each device.

Here are the different “rooms” in HCA now:

Kitchen
Kitchen
Lounge
Lounge
Bathroom
Bathroom
Backyard
Backyard

The front yard “room” now also includes buttons to capture and email a picture from the doorbell camera as well as start a live stream as seen below:

Front yard
Front yard
Captured picture sent via E-Mail
Captured picture sent via E-Mail

Currently finishing off the 5.1 system in the lounge and after that work will begin on expanding the rack to a floor to ceiling 19″ rack.

Insteon Thermostat

With winter on the way and the temperature dropping I thought it about time to upgrade my thermostat to allow a bit more control, especially good on those days you don’t want to get out of bed just to turn on the heater.

I was keen on getting a NEST however the $300+ price tag seemed a bit much just for a thermostat so I settled on the Insteon Thermostat which will link in with my other Insteon gear.

DSC_1258

DSC_1259

The first step was to run a new wire to the thermostat as the current one only uses two wires (+24 and Heat) wheres the Insteon Thermostat requires +24, common, heat and fan (and cooling if used)

For this reason it pays to check both your thermostat and also the heater control board as the “dumb” base thermostats may not use all the wires available even if they are present (Heater was not listed as being compatible based on the thermostat but works fine with the extra wires connected)

I pulled a length of CAT5 from the heater to the thermostat and set about rewiring the heater, lucky enough the manufacturer was nice enough to put the wiring diagram on the control board:

heaterwiring

As you can hopefully see below I’ve replaced the old wiring with CAT5 using four terminals now rather than two.

DSC_1266

And then matched up on the Insteon Thermostat:

DSC_1263

And up and running πŸ™‚

DSC_1268

Setup with the Insteon hub and app was easy. Open the app -> add device -> thermostat. App will inform you to hold the Set button on the thermostat till it beeps then the two sync up. After it’s done you are presented with this screen allowing control:

Screenshot_2015-04-21-18-14-23

I then setup wake, leave, return and sleep programs for week days so the heater will come on just before my alarm, switch off as I’m leaving, turn back on as I’m leaving work and shut off when I go to bed.

Programming details were not included in the quick start guide in the box and I had to find a PDF of them on the Insteon website, I’ve uploaded a copy here.

Now to wait till morning and see if I wake up nice and warm πŸ™‚

Raspberry Pi Doorbell and Camera Part 2

After a session of lifting tin and climbing through the roof to run cables the camera has now made it’s way to it’s new home πŸ™‚

After the cable was run I wired up the POE and Ethernet and found there was too much of a voltage drop over the line to keep the Raspberry Pi running while taking a picture so I changed out the 5v PSU for a 7.5v PSU to bring the line voltage up.

After I did this the Pi booted no worries and shot off a picture.

psu

My eBay case arrived and while not the most subtle case for the job it has more than enough room to house everything.

The Pi was mounted to the plastic board inside with a pair of zip ties and the camera with a good chunk of blue tack. I think I’ll eventually mount the camera better but with the camera board being so small it is a bit of a pain to mount.

case outside

case inside

camera

And after mounting the case out the front we have success:

front door

I made a few further changes to the software side as well as shown here:

run script

As you can see here upon the door bell being pressed the Pi:

1. Sends a pushover notification via the API

2. Captures two pictures. One low res and one hi res

3. Attaches and emails the low resolution picture

4. Inserts the date and time to a mysql database

5. Copies the hi resolution picture to my NAS

 

Here you can see the mysql table which simply contains the date and time the door bell was pressed, eventually I will do up a PHP interface to be able to view the data from mysql more easily.

mysql

 

And now onto the next project πŸ™‚

Webserver, Mysql and Temp Sensors

A bit of work finally got done on the back end systems for home automation including setup of a new Debian VM for a web server and Mysql server to allow data collection from various sensors around the house as well as hosting the library data for Kodi (XBMC).

I now have two virtual machines running on the NAS. The Windows 7 machine runs Home control assistant which gives access to Insteon control as well as the USB relay boards from both PC and Phone.

The Debian machine is configured with Apache2 for web, Mysql database as well as running python scripts to poll the various sensors and insert the data into Mysql.

virtualbox

I currently am using two different sensors. The water proof DS18S20 temperature sensor and the DHT22 temperature/humidity sensor.

Further DHT22 sensors will be added to both the bathroom and en-suite to allow humidity based extraction fan toggling.

Sensor overview:

table

Temperature graph:

Temp

Humidity Graph:

Humidity

Currently all sensors are polled every 5 minutes and saved into Mysql. Graphing is done with jpgraph in PHP which I need to spend sometime on to get looking right/nice.

Another database keeps track of each time the door bell is pressed and I plan on making a PHP front end for it that will link to the pictures, etc.

I’ve also ordered a cheap weather station with wind speed, direction, rain collection, temp and humidity that allows USB data collection which I will add in as well which will hopefully give a good location weather overview and will allow me to control sprinklers, etc based on rain, etc.

Door bell system has been put into it’s new case and is ready to be mounted just need to run the CAT5 to it’s new home which should hopefully get done over the weekend.

Front Door Electric Lock Part 2

Well after 2+ months of waiting for parts that never arrived I gave up and ordered new ones.
Rather annoying but did mean I went ahead and got better parts instead.

Instead of an all in one RFID/Controller I got a LAN connected controller board that supports up to four RFID readers and two doors.Β  This allows for more control in terms of users, time in/out and easy lock out of existing tags. Also means when I add in the garage door I’ve already got all the supporting equipment.

One extra feature that I plan on using is keeping an eye on the occupancy of the house so when everyone has taped out can switch off lights, heating, etc to save power.

I had already run a length of speaker wire to the door striker location and a length of CAT5 to the position of the RFID reader so hookup was pretty easy, the RFID reader uses 5 wires in total: +12v, GND, Data0, Data1 and LED

Was then just a matter of installing the software and entering the users. The wizard asks you to tap the tag on the RFID reader and then you add a name, department and any other information you want about the user.Β  You can then set access privileges on a per door and user basis. Software is quite overkill for this application (can support something like 20,000 users…) but for the price who cares πŸ™‚

And onto the pictures… I plan on making a video showing the door operation as well.

Electric Strike lock wired up.
Electric Strike lock wired up.
Delivery :D
Delivery πŸ˜€
RFID Tag
RFID Tag
Control board all wired up
Control board all wired up
RFID Reader connected up
RFID Reader connected up
RFID Reader Mounted up
RFID Reader Mounted up

 

Relay Board Arrived

USB->Serial four channel relay board arrived on Friday and got a chance to start playing with it over the weekend.

Currently one relay is used to locking/unlocking the front door and the second for switching power to the amp which runs the Kitchen speakers. Deck amp and an extraction fan to cool the rack will most likely fill the last two.

Relays all off
Relays all off
All relays on
All relays on
Relays wired up in the cupboard
Relays wired up in the cupboard

Unit is nice and easy to control simply a case of sending the ASCII character for the command you want to the serial port.

Table of commands

I’m using Home Control assistant running on a Windows 7 virtual machine which allows control of Insteon, X10, serial and IP devices. Below is the interface on the PC.

Home control assistant running on the Windows 7 VM
Home control assistant running on the Windows 7 VM

For opening the door it runs this small script/program which unlocks the door then waits 5 seconds before locking the door allowing you time to open it.

Visual program for opening the door

Visual program for opening the door
Command for sending data to the serial port
Command for sending data to the serial port

And here is the interface on Android.

View of the Front Yard on the Android app
View of the Front Yard on the Android app
View of the Kitchen on the Android app
View of the Kitchen on the Android app

Other end connected to the electric strike lock. Apply 12v and the tongue moves freely.

Electric Strike lock wired up.
Electric Strike lock wired up.

Can read more on the install of the lock here.

RFID parts still are yet to arrive which is the final step for the lock.

 

Quick update 19-8

Still awaiting delivery of the RFID unit and power supply for the electronic lock so haven’t been able to make much progress on it other than running cables to the lock and position for the RFID reader. Hopefully should be here in the next few days.

In the mean time I have been playing with home automation software and think I have found the one I’ll use as it can interface not only with Insteon and X10 but any serial or IP connected device which will allow me to pull temperature, humidity, voltage and all sorts of other data into the system on which to make decisions from.

eg: turning the bathroom fan on when the humidity rises, cooling fan in the rack when the temp rises, email/sms notification of power outages, etc.

The software is called Home Control Assistant and is around $160.

I have ordered a USB/serial connect 4 relay board that I will interface with it to allow low voltage switching for things like the Kitchen amplifier, cooling fan in the rack and also to be able to unlock the door from the automation interface.Β  The unit is also capable of bluetooth or WiFi with a module but will be connected via USB. Picked it up for $35 on eBay.

Relay board 1

Relay board 2

 

Have also ordered a pair of DHT22 temperature and humidity sensors and a 5 pack of DS18B20 water proof temperature sensors.

DHT22 Temp & Humidity
DHT22 Temp & Humidity
DS18B20 Temp
DS18B20 Temp

DHT22’s will be mounted in the bathroom and laundry to allow automatic fan control when humidity rises.

DS18B20’s will be used mostly for data collection and also to trigger cooling fan for the rack.

More coming when the post man gets here πŸ™‚