Prevent rule from running twice in 30 minutes

I have the following piston in webcore in smartthings to trigger when my alexa alarm goes off. I have it set up so if I snooze my alarm and it goes off again it will not trigger the piston again unless 30 minutes have passed. I have been trying and trying to figure out how to do something similar in rule machine but just can't figure it out. I basically want to create a variable with the current time plus 30 minutes and then compare that variable to the current time and only run the rule if the current time is greater than the variable.

Try something like:

Trigger: cloud endpoint from IFTTT or however you want to handle this (never tried but assume it would work)

Actions to Run:

IF (Private Boolean is True) THEN
  Set Private Boolean False (This Rule)
  Turn on: Sonos
  Set Level: Bedroom Light 25%
  Delay 0:00:10
  Delay 0:30:00
  Set Private Boolean True

Rather than using a time variable, the idea here is using a built-in boolean you get with every rule (though a local or global variable would work just as well if you prefer) in combination with conditional and a delay to only execute this at most once within 30 minutes.

Awesome. Thank you. Did not know about the private boolean. Will give this a shot.

bertabcd1234 thanks so much for the help this worked perfectly. The only wierd thing I found is the private boolean would not change back to true until I added another action between the delay and the set private boolean.