"Automate your automated workflows with Redstone." ~ Tony R.

Not that kind of Redstone

Not too long ago I wrote a piece of software I decided to call Redstone. Although this was inspired by Minecraft, I do apologize if you're hoping this was actually about workflow automation using Minecraft's Redstone wire. You probably can figure out a way to rig up this to Minecraft, but we'll talk about that some other day. I created this to help curate some automation in between IFTTT and my smart devices.

Smarter Smart Devices

If you've ever been on the internet in 2020, you may have noticed workflow tools are abundant for both the consumer and business markets. With services like IFTTT, and Zapier anybody can automate daily tasks and workflows with little to no coding experience.

When it comes to the consumer market, I realized most smart devices are limited to support with IFTTT or direct integration with Google Home. The biggest flaw with IFTTT is that it can only trigger one action. If you're trying to use something like Wyze Sense to build a basic alarm system, you're very limited in action without coding experience. Alarm systems need logic so they don't trip when you don't want them to.

Simple JSON Instructions

My short term goal was to build something I could change on the fly. I chose JSON to store the logic because it's easy to change and adapt to. For example, the data below represents a simple alarm system workflow. Although it's complete, it gives an idea of how easy it is to configure Redstone to work with IFTTT:

{
   "armed":{
      "title":"Arm System (Away)",
      "activate":{
         "delay":30000,
         "ifttt":"alarm_siren_off"
      },
      "deactivate":"siren_off",
      "opened":{
         "ifttt":[
            "alarm_triggered",
            "alarm_siren_on"
         ]
      },
      "closed":{
         "kill_timers":[
            "opened"
         ]
      },
      "motion":{
         "ifttt":[
            "alarm_triggered",
            "alarm_siren_on"
         ]
      }
   },
   "disarmed":{
      "title":"Disarm System",
      "description":"The system is disarmed, and all events are ignored.",
      "activate":"siren_off"
   }
}

One thing I realized in programming, is that JSON seems to be a format everyone seems to understand. The configuration that powers Redstone is a simple JSON file that stores the data that Redstone reads when it loads your automated workflows.

Running Redstone

Redstone is currently programmed to run a simple HTTP server that listens for instructions to trigger workflow actions. Initially, the system is designed to only allow one workflow to be activated at a time. Workflows can have multiple triggers, and trigger multiple actions at the same time. You can read more over at GitHub.

You will need to be able to run Redstone on a public server to be able to properly receive events triggers. You can usually find cheap hosting on DigitalOcean, AWS, Rackspace, and OVH. I am open to questions for anyone that needs help setting a server up. It's easier than it sounds.

Automated Workflows For Your Automated Workflows

At the end of the day, Redstone provides a pretty basic way to add an extra layer of logic on top of your already existing automate workflows on IFTTT. It's nothing revolutionary, but it solved a problem for me and maybe it can do the same for you. Automate your automated workflows with Redstone.

This project is open-source, and I open anyone to make contributions. If you find any bugs, feel free to report them!

You can find the project at: https://github.com/TonyRice/redstone