I learned in early September that I would be stepping out of my coding cave and heading for Serbia for ten days. Finally I had a chance to prove to Ali that all the random home automation projects that I have been working on for the last year could actually be used and give the appearance that we were home when in fact we were 5861.4 miles away. For some of you, this blog is going to be like the ridiculous tv episodes made completely of previous scenes and no new material.
The goal was to monitor the temperature, control the lights on a timer as well as manually, make sure the lawn gets water, and watch it all from my Chromebook or laptop.
Remote Climate Control
This task was too easy so I won’t bother with the details again – basically I bought and installed a Filtrete 3m50 Wi-Fi Touch Screen Programmable Thermostat with Remote Access. It was $100 and the thing has been solid. The thermostat just works. I enjoyed that the interface told me I was saving 3-5% while I was gone but I was still able to have the house at our normal temperature by the time we walked in.
Open-Zwave and an Aeon Labs Z-Stick 2 has been controlling my outdoor porch light reliably for the last year so I had no reason to expect it to stop. The system uses Php functions to determine when to turn on and off based on the sunset and sunrise. I wanted to be able to check it remotely though to make sure the house is not dark and really just play around. I decided to use a ssh tunneling script that I had previously blogged about rather than implementing authentication. Basically, I would flip a switch on a remote server and the Raspberry Pi would check the state every 5 minutes. If the switch was on, the Pi would open a tunnel forwarding port 80 through our firewall and to the remote server I could access. As soon as the switch is turned off, the tunnel closes and no one outside of the network can control the lights.
Another easy win. I am still using my EitherRain 8 controller and the open source sprinkler controller software on the same Raspberry Pi that controls the lights. So when I open up the ssh tunnel, I can also play with the sprinkler at the same time. I will be the first to admit that you could build the EitherRain 8 with parts found at Radioshack or Frys Electronics, but with how well this thing works and for the price, it is not worth the time. One note, I never purchased the rain sensor (which is pretty cheap) because of my fear of falling off a ladder installing it. So I did have to log in once to tell the sprinkler not to run because Houston actually got some rain. If you are normal and have the rain sensor – you probably will never touch the settings.
The video feeds are where it got cool for me. I hate security cameras. Mostly because I am cheap and quality ones cost money so I have collected a hodgepodge of different types. For IP cameras I have a Foscam, Wanview and then a horrible 720p clone that I picked up on eBay. The 720p has never worked as described. I also have 3 web cams – favorite being the Logitech c310 which just seems to be happy working on any OS/distro on many devices (I have tested it with Win7, OSX, Rasbian, Debian Android, and Chrome OS).
In the past, I had just forwarded the video feeds through the firewall and checked them individually. This trip, I wanted to try something new. I read a couple of articles on iSpyConnect.com and decided to give it a try. The free version allows you to aggregate all your cameras, IP or USB, into one nice place. It has motion detection and alerts. You could easily tunnel into your network and watch everything remotely, however I paid the $8 remote viewing fee for the month to avoid any hiccups while in Serbia. I have to say the server software was solid. I accessed all of the cameras and drove around the PTZ cameras without a problem on an iPad, iPhone, Android, and Chromebook.
With any camera setup, you want the video someplace remote in case bad guys get access to your local system. I like setting up “Droplets” from Digital Ocean for this purpose. A ‘Droplet’ is a $5 VPS that runs on SSD drives. You get one up and running in under 60 seconds.
Added Bonus of the “Droplet”
When traveling, I also use the same $5 Droplet to proxy my traffic when I am in remote places. The process is very easy – just the command ‘ssh -D 8080 [email protected]’ and then set your computer’s proxy settings to ‘Socks 5’ localhost:8080. If done correctly you traffic should be encrypted to your server and the receiving end will only see the IP address of the server.