ady624 / CoRE

CoRE - Community's own Rule Engine
GNU General Public License v3.0
222 stars 663 forks source link

Feature Request: Evaluate Pistons within Pistons #6

Closed TheFuzz4 closed 8 years ago

TheFuzz4 commented 8 years ago

So say I have a piston that evaluates condtion A and when condition A becomes true I then want to force it to go evaluate another piston.

In my case I have a piston that turns on my kids space heaters but only from 8p-7a and only if we're home. So say we get home at 10pm and I want the heaters to turn on so i then tell my piston that fires when we get home to go evaluate that rule so their space heaters turn on.

ady624 commented 8 years ago

Planning on doing this. Also, implement follow-up pistons that can only be evaluated as a request from another piston.

TheFuzz4 commented 8 years ago

I like the idea

tinypocket commented 8 years ago

+1 - Would be good to allow a piston to re-evaluate itself and loop too. Scenario: Let me know if a lock is unlocked after an hour, and keep reminding me if it's left unlocked. Something like this:

 IF ( Exterior Lock lock is unlocked )
 THEN
    USING location (+(Cancel on piston state change))
       Wait 1 hrs
       Send Push notification "Exterior Door unlocked for 1 hour! Don't forget to lock it!"
    Re-evaluate this piston
  ELSE
    nothing
ady624 commented 8 years ago

Implemented in v0.0.061 - Follow-Up pistons. To follow your example, a follow-up piston can be initiated by another piston and then can follow up with itself until the lock is closed. Caution needs to be used - a wait time should be used to avoid continuous loops.