CoRE - Get peer assistance here with setting up Pistons

Trying to build in a debounce on a switch. I am trying to improve on the Mood Cube interface by building in a delay from start of motion until the start of an action. (The not moving is a 12 second delay, a little long for the application.)

I want to do:

If (motion) {
wait 3 seconds
If Position == “Up” {thing one}
else if Position == “Down” {thing two}
else if Position == "Right {thing3}
}

Is this possible in CoRE?

Yep. Enable expert mode and use individual actions in a basic piston. Add the stay trigger, then add a group. Change the AND between the stay trigger and the group by tapping on it. Select THEN IF.

IF
   Motion stays active for 3 seconds
   THEN IF
   (
      Orientation is up >>> when true > do something
      ELSE IF
      Orientation is down >>> when true > do something else
      ELSE IF
       etc.
   )
1 Like

It only gives me minutes. What am I missing?

Okay, I need to add seconds then :wink:

2 Likes

Thanks. Just trying to debounce the sensor. perhaps the code you use in the wait could be recycled here. (Number, units)

I’m having a problem understanding the groups and how to set them up properly. I end up getting lost when I get a couple groups deep.

Here is what I want to accomplish:
If Garage Door is open
Then
Fan Off
Wait 3 Min
Garage Thermostat Off
Else IF
If Garage Door is closed
AND
(Garage Temp is less than 35F
Then 
Set Garage Thermostat to Heat
Wait 10 Seconds
Set Garage Thermostat setpoint to 40F
Fan On)
OR
(Garage Temp is greater than or equal to 40F
Then

Set Garage Thermostat to Heat
Wait 10 Seconds
Set Garage Thermostat setpoint to 35F
Fan Off)
Here is what I have so far.

Can anyone help me fix this to accomplish the above?

I have this piston written which is designed to activate by 2 methods, one is a virtual switch, one is a physical switch… and the piston keeps them tied together. I put a notification in the piston and it sends it twice. I imagine thats because its activating the piston for the one switch first, then as it flips the other, reactivates itself again.

I also have a need for a condition I want to be true only when at least 3 windows are open. Is that going to require introducing special variables?

Well, first thing you have to do is upload a picture of the piston you already have.

Yes, sorry here it is

So its a whole house fan I’ve automated, but, I want to be sure that there is sufficient ventillation so the fan doesnt kick in when its not wise, for example, if one sensor is stuck and not actually closed, or one bedroom window is open but the door is closed. I feel as though “at least x” and in my case x would be 3, should be a simpler thing for me to do. Alas. If you have any ideas!

Here is the piston which runs twice. And i’m looking for a basic way to say “if this runs, dont run it again right away for the other switch”

Need some help on a basic piston turning of a light when no changes in a motion sensor is seen in 5 minutes. Do I get the logic wrong? In dashboard it evaluates to FALSE forever, but if i simulate it does what it is supposed to do.

What piston do you have turning on the light?
This one turns on my cabinet lights and turns then off after two minutes of no motion.

In the first IF create a Boolean variable (fan timer) and have that as a condition. The condition will be true.

 IF
 Any switch changes to on
 And
 {Fan timer} is false
 THEN
 Do stuff and
 Set {fan timer} to true

 BUT IF
 Any switch changes to off
 THEN
 Do stuff and
 WAIT x minutes
 Set {fan timer} to false

Hi.
The switch is turned on physically, not a piston.
Does it have to be chained to a turned on piston?

No, it doesn’t have to be turned on with motion.

Did you see any logic faults in the piston i posted? @bamarayne

No, I didn’t, but until @ady624 can look into this and see if there is a bug, try this.

Using a latching piston.

 IF
 Motion is active
 And
 Kitchen light is on
 THEN
 Leave this blank

 BUT IF
 Motion is inactive
 THEN
 Wait 5 minutes
 Turn off light (cancel on piston state change)

Good point to test @bamarayne
It turns of the light once the motion sensor get status “inactive”. aprox 20 seconds.
So no still no cigar :slight_smile:

I’m struggling with my setup. I’m using a simple basic piston defined as follows -

If motion sensor 1 or motion sensor 2 is active, then
turn lights on
wait for piston state change (i.e. no motion)
Dim lights to 10%
wait 1 minute
turn off lights

It kind of works as expected (i.e. lights turn on / dim / new motion, turn on again)

But sometimes the lights stay on:( and you can see in dashboard that the set level 10% and the turn off are xxxxSeconds past due…

Any tips? Is there a better way to be doing this? I think maybe the system is being overwhlemed w/ schedules over schedules over schedules when the task re-triggers?

Thanks,
-mark

Post your modified piston, I’m pretty sure I know what’s wrong there.