I have a Roborock robot vacuum cleaner which can be activated through Alexa (but not with IFTTT).
If I am going to leave home for some hours, I like the robot to clean when I am away, in order to avoid the noise and robot moving around and hitting my feet.
So this is what I have implemented:
First, I have created a boolean variable called “debo_limpiar_cuando_se_vayan” (must_clean_when_away).
I have also created an Alexa routine than, when I say, “Alexa, clean the house when I am gone”, triggers an IFTTT script which sets that Apilio variable to True
When I am away, an IFTTT applet which uses my location triggers and executesa logicblock which evaluates if that variable is set to True.
In case it is True, then it calls an IFTTT applet which does two things.
First thing is to use sendAlexaActionByMkzense service to trigger an Alexa action. This service creates “fake buttons” in Alexa which can be “pressed” from IFTTT, so you can trigger actions via Alexa routines (in my case, it is the only way to activate my robot as it does not support IFTTT directly).
The IFTTT applet also sets the “debo_limpiar_cuando_se_vayan” (must_clean_when_away) to False, so it does not run again next time I leave home.
Obviously there is some delay due to lots of steps: IFTTT detects I am away and triggers logicblock > Logicblock evaluates if robot must clean and triggers IFTTT > IFTTT “presses” the virtual button > Alexa detects the button press and initiates robot via routine.
However, in this particular case delay is not a problem. I am ok with the robot taking a few seconds before cleaning when I leave home.
Oh, I forgot to mention that the Alexa routine that starts the robot also shows a nice notification in my mobile
(“Roborock cleaning started”)