Web Interface
We elected to create a service that ran on a remote web server to do the heavy lifting. This service interfaces with all of the various API’s to do the heavy lifting and calculate the final wake up time which is pushed to our device.
Along with this service we created a configuration front end that the user can access. When the user first sets up their device, they would create an account on our site, providing a unique identification number from the device. This number is stored in EEPROM and pushed with each web request, to associate the device with it’s data. Once the user logs in they provide their Google Calendar login information so our service can access their calendar entries.
They can also configure several parameters such as addresses, X10 device codes, and default wake times. The address shortcut fields make it easier to enter information into your calendar. Since Google Maps requires exact addresses that can be tedious to input, the user can use shortcuts such as “Work”, that our service will parse out into the correct address.