IFTTT Actions

Thought I would play with Rachio using IFTTT. I checked out the Rachio triggers:

  1. Watering time starts: This Trigger fires every time a watering time starts for the device your specify.
  2. Watering time stops: This Trigger fires every time a watering time stops for the device your specify.
  3. Event registered: This Trigger fires every time an event is registered for the device you specify.

I did not think I would find what I wanted to do there, so I went to the Google Assistant triggers where I knew I wanted to do something. The trigger options that I have are (giving examples on all four):

  1. Say a simple phrase
    • e.g. Turn on waterfall for 30 minutes
  2. Say a phrase with a number (#)
    • e.g. Turn on waterfall for # minutes
  3. Say a phrase with a text ($) ingredient
    • e.g. Turn on $ for 30 minutes
  4. Say a phrase with both a number (#) and a text ($) ingredient
    • e.g. turn on $ for # minutes

I was not sure which one would work, so I went with #2 which I knew was the minimum that I was hoping for.

I then selected Rachio as my Action Service. I found the following Rachio actions (I did not look at them all, but made notes on two of them):

  1. Rain delay: This Action will put the Rachio in rain delay mode for a certain period of time.
  2. Skip watering time: This Action will skip a watering time.
  3. Stop watering: This Action will stop all watering on a device.
  4. Start a zone: This Action will start a zone you specify.
    • specify which zone & how much time
      • HOWEVER, cannot use the:
        • number (#) specified in the trigger
          • This would be ideal
        • text ($) specified in the trigger
          • This would be nice, but it might have to some funny business like search for the zone containing the word or automatically build the full string. If the zone had two words, that might cause some issues.
  5. Start watering time: This Action will start a watering time.
    • This really seems to start a schedule, which “watering time” is somewhat ambiguous
  6. Seasonal adjustment: This Action will adjust the overall run time of the selected schedule while overriding any current adjustments.

I did not find a curl Action Service and know I can do this with:

curl -X PUT -H “Content-Type: application/json” -H “Authorization: Bearer ” -d ‘{ “id” : “”, “duration” : 180 }’ https://api.rach.io/1/public/zone/start

However, it is in seconds, not minutes. I do not think anyone else in my family would appreciate doing the math :wink: . It would be nice if we could specify the units.

I did found a Webhooks Action Service. So, maybe I could do this if I looked at the Webhooks interface, but seems that it might be something like:
URL: https://api.rach.io/1/public/zone/start
Method: PUT
Content Type: application/json
Body: { “id” : “”, “duration” : 180 }
However, Again this is seconds, not minutes and no place for the authorization part of the header.

Summary:

  1. Can the IFTTT app be modified to at least use the number ingredient (#) for the time?
  2. Can the API be changed to specify the units for the duration, defaulting to seconds if not specified?
  3. Does plain curl not really exist?
  4. Am I interpreting it correctly that we cannot use Webhooks since cannot finish out the header with authorization?
  5. Did I miss some other way of doing this?