Spoken Reminders When You Leave the House on Mondays

ifttttrashreminder

As you may know if you follow this blog, I’m obsessed with various ways of triggering notifications & reminders at just the right times. This morning, my WeMo motion sensor went off as I went out the front door.  I have a rule set for Monday mornings to send me a notification reminding me to take out the trash. However, I tend to have my phone set on vibrate *most* of the time. I didn’t notice the buzz of my phone.  I happened to see the reminder after I was already half way to the bus stop.  The bus was due very soon and I judged that I didn’t have time to turn back and put out the bin.  I thought about this limitation of reminder notifications as I rode the bus to work and came up with a way to mitigate this issue.  I love little puzzles like this!  Of course, I have a reminder go off the night before, but I usually will lazily put it off, thinking I’ll just put it out in the morning, which I tend to forget.  Besides, figuring out tech solutions is fun.  Here was my thought process…

My WeMo motions sensor is pretty accurate and I can set it to send me notifications when it detects motion withing a time-range I give it (e.g. Monday Mornings – trash day).  What I need is some other audible signal (not dependent on my often muted phone) for issuing those reminders that is triggered by the motion sensor.  I first toyed around with the idea of either investigating some sort of reminder device which could just be told to beep (triggered by IFTTT or SMS).  I could use some old phone or something that I could put by the door.  The WeMo app could be installed on it and it would ding when it gets the notification.  But that seemed like expensive overkill, so I kept thinking…

I have a security camera by the front door that has 2-way audio and I thought, maybe I can make it beep or something using IFTTT, but after an IFTTT search and a look through the foscam forum, I realized there was no way to do that, though I might revisit this if the solution I resolved on proves to be unreliable.

Finally, I realized, I have 2 computers that I virtually never turn off.  One controls the security camera and doubles as my entertainment system – so it is plugged into a stereo. I usually turn the stereo off when not in use, but the other computer is just my laptop that’s usually running on my desk.  The speakers aren’t nearly as powerful, but it’s not too far from the door, so I set about crafting my solution to trigger an audible message that will come from both computers.  Maybe at some point, I’ll even figure out a way to have the audio out be automatically routed through one of my 3 airport-express-attached speakers which are usually always on as well.

I’ve used an IFTTT/Dropbox/Folder-actions combo before to make my computer do things based on my location.  I had one set up to start up resource-hogging apps when I leave the house.  It works like this: IFTTT can detect when I leave house, and you can tell it to add a file to a specific dropbox folder when that happens.  On my computer, I can attach a folder action to run a script when a file is added to it.  That script would simply launch the resource-hogging app.  All I needed to do was make the computer shout out a reminder instead of launch an app.  The script can even adjust the volume before speaking.

So let’s set this up.  Here’s what you need:

  1. WeMo Motion Sensor by your front door
  2. A dropbox account
  3. An IFTTT account with the WeMo & Dropbox channels installed
  4. A smart phone with the WeMo & IFTTT apps
  5. A Mac with folder-actions enabled (or Windows/Linux equivalent functionality)

And here’s how you set up your computer to remind you to, for example, take out the trash on Mondays as you leave the house:

  1. If you haven’t already done so, you need to connect the WeMo app to IFTTT by running the WeMo app and following the steps under More->Generate IFTTT PIN.
  2. Create a folder inside your dropbox folder.
    • I like to keep all such automated folder action folders inside a “FolderActions” folder to keep things organized, so create a folder named “FolderActions”
    • Create another folder inside the “FolderActions” folder named something that suggests what the reminder is for.  We’ll use “TrashDayReminder”
  3. On IFTTT, create a recipe (or edit the one I created) and create a trigger using “Any New Motion” and a Dropbox action to “Create a Text File”
    • For filename, I called mine “Motion at {{DetectedAt}}”
    • For the file content, we’re going to have our computer speak the file to us as we go out the door, so I entered “Don’t forget to take out the trash!”
    • For the dropbox folder path, I entered “FolderActions/TrashDayReminder”
  4. Now we need to create a script to attach to the folder in dropbox.
    • Click on the below image to bring up the script in a new window.
    • Copy and paste the script into a new script using the Applescript Editor (in /Applications/Utilities)
    • The script below is set to be active on Mondays from 4am to 1pm, so you will need to edit it for the day and times you want the reminder to be spoken.
    • Save the script as a .scpt script
    • The script must be put in “~/Library/Scripts/Folder Action Scripts”. You can get to the Library folder by holding down the option key and clicking the Go menu in the Finder.  If either the Scripts folder or the “Folder Action Scripts” folder does not exist, create them.

      folderactiontrashreminder

      Click to open the script in a new window for copying & pastingFinally

  5. Finally, you must attach your script to the dropbox folder you created in step 2.
    • In the Finder, right-click on the ~/Dropbox/FolderActions/TrashDayReminder folder and select Services->Folder Actions Setup
    • Select the script that you created in step 4.
    • This assumes that you have enabled folder actions on your system.  It may not be on by default in your system.  If it’s not active, enabling folder actions is left as an exercise for the user.

Note, it would be a good idea to set the day and times in the script to the time you are creating the script at first so that you can manually test the folder action by dropping a test text file (Create one easily using “~/Applications/Text Edit.app”).  Once you’re sure it’s working, you can change the day and times to the desired time you want the reminder to be active.

Have fun!

 

UPDATE: I discovered this morning that Dropbox and Apple’s Folder Actions do not cooperate very well together. Apparently, if you attach a script (with the same name?) to the same dropbox folder from 2 different computers, the folder will no longer sync and none of the folder actions attached to that folder on any computer will work.  So here’s a work-around:

If you want a folder action to run a script when something is added to a specific dropbox folder, you will need to create a separate dropbox folder for each computer that will be running the script.  (e.g. create “TrashDayReminder-Laptop” and “TrashDayReminder-macmini”).  Attach the folder action from each computer to the folder with the corresponding name.  Then you need to duplicate the IFTTT recipe with the only difference being the folder in which to create the text file.

You need to repeat this for every computer you want to run the folder action.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s