Tuesday 24 April 2012

Google Calendar Automation - part 1

I've been thinking about what automated features I'd like in my new house which I hope to build in the coming year. This is the first of many ideas, programming the schedule and temperature of my heating using Google Calendar!

I'm using an mBed in this video, but I've also got another board which is being designed by my friend Stu. Watch this space

I'll post some photos soon, tomorrow I'll be pulling the heater apart to wire it up properly. In the video you'll notice a 'beep' when it cuts in and out. This is not a desirable feature which is about to get fixed.


  1. I got motivated by your totally awesome hack so I decided to write a task scheduler based on google calendar. Check it out @ http://simonslinuxworld.blogspot.se/2012/04/google-command-line-tools-google.html


    1. Oh wow! That is pretty neat.
      You're using at as your scheduler, it wouldn't be too hard to extend this to be a google calendar > cron syncing tool. Awesome stuff, thanks :)

  2. That is really cool. The more stuff you use automate, the more calendars you will eventually have. Would it be nicer from a "Organising" point of view to have 1 calendar and have each controller read just its own commands eg: "Heater.1: 24" or "Light.1-5,7-9: on". The lights example I wrote for a way of controlling multiple lights with just 1 command.

    1. Right you are, good sir, it does seem counter intuitive to have multiple calendars and I did not do this in my first attempt. I actually used the 'Location' field to define what item/items I wished to control, however, my reasons for going with multiple calendars are:

      You'll note much of this post ( http://ferntreeshack.blogspot.com.au/2012/04/google-api-and-smartphone-features.html ) revolves around getting multiple calendars to sync with my iPhone. I discovered that there is an advantage to this in that I can display them all at once anyway, and I can turn them on and off. So IF I have a fixed weekly schedule, I don't need to see it displayed on my screen unless I need to make a change.
      The other advantage is that they display all at once, but in different colours so it is easy to see what bits of gear are doing what.

      I've already expanded this system to control my outdoor lighting, garden sprinklers (however, I'm working on a much cooler system for this) on top of the heaters. I find it very easy to see what is going on, and to hide things I'm not immediately interested in.

      You could combine the two concepts and have a 'Lighting' or 'Sprinklers' calendar and use the location field to turn on different lights or zones. The source code is available and I'd love to see what other people do with it :)