Dawn simulation with smart bulb

#1

I am new to Olisto, trying to find a new service to duplicate some of the great functions of Stringify, which is sadly closing down this month. My simple test is to see if I can re-create the dawn simulation for my TP-Link smart bulb, which starts with a voice command to Google Home or Alexa, and causes the light bulb to turn on at the minimum setting and then brighten automatically in several stages over a few minutes. And I want this routine to be available as part of other routines I create later via a simple call. This requires:

  • Connection to Google Home and Alexa to receive voice commands
  • Support for the TP-Link devices
  • Ability to create a timed sequence with multiple steps
  • Ability to call a pre-defined routine from other routines

I have succeeded to do this with Olisto, although it is more complicated than I wanted. Since Olisto does not support TP-Link devices, I must use IFTTT to set the bulb brightness.

Step 1: Create a Maker account at IFTTT, which gives me a Maker code and lets me trigger IFTTT applets using the Webhook as “This”.
Step 2: Create three IFTTT applets that set the TP-Link bulb brightness to 10%, 20%, and 50%, each triggered by a Webhook, with the names Dim10, Dim20, Dim50

Also I must do some preliminary setup with Olisto:

Step 3: Link Olisto to Google Home
Step 4: Link Olisto to Alexa, installing the Triggi skill (remember to tell Alexa to search for new devices after adding an Olisto button so it will find the new button)

Now I am ready to create my callable Dawn Simulator function. In order to give it an entry point that I can call from other triggs, I need a connector:

Step 5: Create the Olisto connector DawnSim (in a web browser, function not in Olisto app)
Step 6: Create an Olisto button “Dawn” with the action to call DawnSim via Olisto Connect

And the routine itself:

Step 7: Create Trigg: Olista Connector DawnSim triggers IFTTT Dim10 web hook via http, and starts a 60 second timer Dim20
Step 8: Create Trigg: Dim20 Timer expiry triggers IFTTT Dim20 web hook via http, and starts a 60 second timer Dim50
Step 9: Create Trigg: Dim50 TImer expiry triggers IFTTT Dim50 web hook via http

Now I can start the Dawn process by the Olisto Now button, or by saying to Google Home or Alexa “Start Dawn”. If I want to use this sequence as an action in another Trigg, I just need to use Olisto Connect to call DawnSim.

Like I said, more complicated than I wanted, but it’s possible and not too difficult.

Can anyone suggest a better way of doing this with Olisto?

I might also consider putting a PHP script on my own web site for something like this timed sequence, and simply invoke it via http request.

#2

Hi Doug, I must say that I’m impressed by how you engineered all of this. Also, I wouldn’t know of a much easier way to achieve the same result (other than using Philips Hue lights, which have native support for smooth fading over a specified time). One simplification might be to create just 1 IFTTT applet that receives the desired dimming level though the webhook. And then send the 3 different levels from your 3 triggs. Haven’t tested this myself though.

However, I’ve read about the desire to let one trigg call another more than once, so feel free to post a suggestion in the ‘feedback’ channel, where people could vote for it. Same story for supporting TP-link devices. And I suppose it would be helpful for your case if you’d have a way to increase the value for a connector by a specified number (say 10). So you could just create sort of timer-loop that increases the light’s intensity with 10% for every iteration.

#3

Thanks. While IFTTT does support passing input parameters from their webhook to an action, the TP-Link action was unfortunately not made to accept parameters. Therefore each required brightness level has to be a separate IFTTT applet.

With Stringify I used variables (they allowed up to 10 persistent variables) and math functions such as incrementing a variable value. They also allowed conditional branching in their routines based on variable value. All of these things are useful in some circumstances. But routines with conditional branching become difficult to visualize without the graphical capabilities of Stringify. It would be simpler to implement a single action that invokes one of two other triggs based on a condition test.