Integrating iCal into your home automation system may appear to be of limited use - at least at first glance. However, consider this: when is the last time you forgot to go to the store? Meet a friend for lunch? Leave for a doctor's appointment?
iCal has some nice features built-in to remind you of things: you can have an alarm that shows a message on your computer and beeps. If you don't happen to be sitting at your computer though you may miss those. Same with opening a file. Running a script would be a good way to integrate with Indigo, but unfortunately no data about the event is passed to the script, so at best Indigo would know that “something” is about to happen.
You can also have iCal send an email, and that's where this plugin gets it's power. iCal alarm emails have information about the event in the email message - when it's taking place, it's name, and even any information typed into the “note” field of the event in iCal. This plugin will monitor an IMAP email address, watching for these specially-formatted emails. When it finds one, it can do various things for you, which we will cover below.
Let's first look at the configuration window:
The first section allows you to configure the settings for your IMAP server and how often the plugin will poll the server for new email messages. Check with your email provider for port and SSL settings.
The next section provides some simple speech options. The first option will have the IndigoServer application speak the event and it's time. This speech will happen through the standard sound output on your IndigoServer Mac. If you're using Airfoil, you can have the sound directed out to Airport Expresses and AppleTVs - a simple way to get whole-home audio. Optionally, you can have the iTunes plugin perform the speech - it will first pause iTunes if it's playing, speak the event, then resume iTunes as necessary.
The next section will turn on an advanced feature - in the “notes” field of an iCal event, you may insert some specially formatted text that can be processed by the plugin when an event email is received. You can have Triggers, Schedules, or Action Groups executed, and for the first two you can specify whether conditions associated with them are evaluated or not. Here are a few examples:
|Execute a Group||Group::1282734394|
|Execute a Trigger skipping Conditions||Trigger::982343093::False|
|Execute a Schedule evaluating Conditions||Schedule::982343093::True|
Each directive should be on it's own line. The first word is what kind of object should be executed (Trigger, Schedule, Action Group). Then a double colon “::” separates the ID of the object. Finally, for Triggers and Schedules, another double colon followed by “True” to evaluate conditions or “False” to ignore conditions.
Note: this option is slightly dangerous since this plugin will process any email that is formatted like an email from iCal. Just a note of caution when using this option.
The next option will tell the plugin to delete the email once it's been processed. The plugin will mark each email in a way so that it won't get processed twice, so the deletion is really just to help you keep the mailbox cleaned out. If you prefer to keep an audit of alarm emails then don't select this option.
Finally, you can turn on extra debugging in the Event Log as directed by support (it's not recommended otherwise or it may fill up your log with information).
That's pretty much the function of this plugin. If you want to force the plugin to check for alerts between it's normal polling period, you can select “Check for Alarms” on the iCal Alarm Processor menu and it will immediately check and process any email.
Here's the plugin ID in case you need to programmatically restart the plugin:
Plugin ID: com.perceptiveautomation.indigoplugin.iCalAlarmProcessor
For usage or troubleshooting tips discuss this plugin on our forum.