IFTTT, Roomba 890 and WebCoRE

light

#1

Hello all,

Just contributing a simple Piston for WebCoRE Roomba automation. I own a Roomba 890 and it does not have the intelligence to start a second round of vacuuming after it loses charge. I wanted to have a closer solution that the Roomba 980 does with estate mapping without the price tag. I noticed if I have the Roomba start twice in a night it covers ~98% of my first floor. Only issue is Roomba application only allows you to schedule once a day and also my Roomba wanders a LONG time prior to finding it’s homebase which sometimes results in a dead battery. So I created a piston that would start Roomba in the middle of the night at a set time, vacuum for 1.5 hours giving the Roomba an hour of battery life to find homebase(s), let charge for three hours and then begin again.

Steps:

  1. Setup IFTTT
  2. WebCoRE dashboard setup IFTTT integration under settings
  3. Setup (3) routines named the same below in IFTTT. If (WebHooks) then (iRobot)

Note: The TurnOff period you need to stop Roomba and then request to go to Dock. Else Roomba waits 90 minutes to cancel the job and then return.


#2

Hi prayfuldrop,
Thanks again for pointing me toward the right direction (I was asking this question over at smartthings forum)
I am very new to CORE, and brand new to WebCORE and never tried setting up or using IFTTT. Is there any details info you can provide to point me toward for the 3 Steps you provided?

  1. What you mean setting up IFTTT?
  2. I am in Webcore Setting, looking at IFTTT integration, but have no idea what it means by “IFTTT Maker Webhooks URL”
  3. I guess I just not here yet, so no idea what it means.

Thank you so much for your help!


#3

@gilee_8

Sorry about the late response. Busy weekend. :slight_smile:

Here is what you need to do:

  1. Go out to IFTTT and setup an account if you don’t have one.
  2. Go into your WebCoRe dashboard on a computer browser (not your phone)
  • Click on Settings
  • Click on the Integration Tab
  • Click on the hyperlink “settings” which will take you out to IFTTT to generate a Maker Webhook URL
  • Copy the URL from IFTTT and place in your Settings/Integration/IFTTT URL textbox
  • Click Apply
  1. Go back to IFTTT login and do the following
    • Click on MyApplets
    • Click NewApplet
    • Click on the blue +this
    • Type in “WebHook” for the search criteria
    • Select WebHook Icon
    • Select the next box “Receive a web request”
    • Give your Eventname “RoombaOn”
    • Click on Create Trigger
    • Click +That
    • Enter “iRobot” for the search criteria (you may be asked to authenticate your iRobot account)
    • Select “Start Robot”
    • Select your iRobot
    • Click Create Action
    • Uncheck the notification box
    • Click Finish
      Repeat these same steps for the RoombaOff and RoombaDock but selecting the different options in iRobot. Hope this helps!

#4

@Prayerfuldrop, thanks for your help I’ve used your code to help with my home automation. I’m fairly new to this new hobby. Do you have any suggestions as to deal with my motion sensor being triggered by the roomba. Is there a way to write a webcore to disable the motion sensor based on the status of the roomba.

For example, If roobma is active, disable motion sensor. How can the status of the roomba be sent to webcore?


#5

It is a two fold process. First, in the piston that is STARTING the Roomba, you can tell webCoRE to turn on a Simulated Switch. (virtual sensor) Not sure about the turn off time though since Roomba may not return to base as promptly as expected. (ideally, when the Roomba stops, turn OFF the SimSwitch)

The second part of this is to program your motion sensors something like this:

If motion changes to active
and
SimSwitch is off
then
    Turn on lights (or whatever)
End if

This way, your lights will not come on UNLESS the SimSwitch is off at the time.


(There might be a Device Handler for the Roomba that updates the status of the device, but the concept is the same. Maybe someone else who owns one can chime in)


#6

@WCmore, thanks for the info. I will try working on this and see how it works.


#7

Use a wait timer for 3 hours and then turn off the virtual switch.

with
do
wait 180 minutes
Turn off


#8

Could somebody explain what the boolean function, with this piston as example, does? In the name of learing - KISS, please :sweat_smile:


#9

A boolean variable can be either true or false.

In the case of the top post, each time it runs, it forces ‘TestOn’ to be false.
This means lines 37-45 will never execute.

Edited for clarification


#10

So in this piston it is for testing purposes, say you wanna test the “wait” time to see if 15 seconds is needed (or change it to something else)?

What would other practical uses for a true/false variable be?


#11

Ignore it. I don’t even use it anymore.


#12

I have at least one variable in nearly every piston I create. (although less than 5% of them are boolean)
I find much more use for Strings, Integers & Decimals, but Booleans do have their uses.

One good use of booleans is to have a complex trigger with conditions which sets the boolean true, and another trigger with conditions to set the boolean to false. Then in that same piston, you only need to refer to the variable instead of checking all the conditions again.

Booleans are also great for setting up timed delays or when testing, as seen above.

But really, it is a case-by-case situation.


#13

Great job! I love the Roomba WebCoRE control. I’ve gone a step further and using calendar integration have it so that the Roomba will not start when WebCoRE knows that I am home and in a meeting (generally all my meetings at home are conference calls).

Great way to blend some additional smarts into it. Not to be that guy, but wrote about how I did this on my blog…https://alvinychen.wordpress.com/2018/08/01/roomba-980/


Very long webhook ifttt processing