CoRE - Get peer assistance here with setting up Pistons

Why is this super simple piston not working. The door isnt unlocking when I get in the geofence area set in Life360

I’m curious as well
i’ve never had good luck with geofence triggers

I have this simple piston that is meant to turn on my porch light if we arrive home late (the light is automatically on between sunset and 10pm.) However the light come on every time we come home regardless of the time. What am I doing wrong?

You are not doing anything wrong. If using iPhone, have you recently upgraded to iOS11? If so, presence is currently broken and ST is working to fix it.

More info here: Mobile device presence broken with iOS 11

Presence is working fine. Lights come on everytime I come home. The problem is that they also come on if I come home during the day.

Uh auch, ok. What happens if you use between 10pm and midnight? CoRE is obsolete - I can take a look at that, although if that was a bug, it would have come out a long time ago

What if you are Android N? My lock isn’t unlocking when I arrive in the geofence.

I’ve got a bunch of moderately complex pistons working, but this simple one is giving me trouble:

45 PM

I am using a ZWP switch and button #8 is just a normal “off” press. The goal is to control a lamp semi-independently from a the room’s single switch. Specifically, if the switch is “toggled off” when the room’s ceiling lights are on, then it turns them off normally leaving the lamp alone. However, if the room lights are already off then the lamp is turned off instead.

The problem is that if the room lights are on, they get switched off before the Piston receives the button press. So the condition is always true by the time the trigger is received and the lamp is always turned off.

I’m thinking I might need one piston that checks for a “Living Room Lights changes to off” trigger and stores a “Lamp Mode” state. Then a second piston that does the main job of “IF button changes to pushed AND Lamp Mode is true THEN turn off lamp”. However, I’m not sure if that “Lamp Mode” would be a piston state or variable since those are both things I’ve never used. I’m also concerned that I’ll run into the same problem
the first piston sets a variable and the second piston runs immediately using the same trigger. Hope someone can help!

How do I setup a piston to trigger at a certain time.

I want a light to come on at a specific time every day. I have tried to create a few tests and keep failing.

What is the right actions to use???

Okay!!

Ask: If my outside temp is between 60 to 75, then I don’t want my Ecobee to run, (Away mode is fine). Else run as per Ecobee’s schedules and temp settings. Also,when turning on - generate push but generate only if originally was not running due to being within range.

Problem 1st. I tried to keep things simple and just did set Ecobee to off. Worked fine. However, as and when Core restarted Ecobee it always started up with the default Ecobee settings, namely 70F heat, 75F - cool!
So - see below: I have tried to capture the Ecobee state and then tried to retore the state. Nevertheless it still defaults to default values!!

Pseudo-code:

IF AccuWeather(Zip) temp is inside range 60 to 75
THEN Using Ecobee
Capture state of attributes [thermostatOperatingState] to local store
Set boolean variable [mode] = false
SwitchMode(“Away”)

ELSE IF 
 outside range
THEN Using Ecobee
Restore state of attributes[thermostatOperatingState, mode, FanMode, Setpoint] from local
IF (mode) is false
send push not.
set boolean variable [mode] = true
END IF
END IF

some commands above are in abbr. form.

Looks like there’s not much that can be done with CoRe w.r.t. my issue. I have tried various options but every time Ecobee starts up with the defaults and not what’s programmed. I removed the piston as the underlying methods seem to work towards starting Ecobee only with factory defaults.

I have a piston that is supposed to turn on a light if it is between sunset and midnight and a door contact is closed. It doesn’t work. These are two conditions with no triggers, but its my understanding that time conditions will evaluate and execute when the time is met, so shouldn’t it run at sunset and check to see if the door contact is closed, if it is, then turn on the light? Or am I not understanding how this works?

I believe the door contact is a trigger
is it not?

No, “is closed” is a condition.

would be best to post a screenshot of your piston.

In my experience, time ranges are not the same as a specific time. If you set the piston to evaluate at 10 PM, it will do so, but a time range will never evaluate by itself – it will require a trigger.

One way around this is to loop the piston, say every ten minutes. That way, the piston runs every ten minutes and evaluates each condition.

Foul

For instance, here’s a more complicated piston that sets Night mode for me automatically once “everything calms down”. If Night mode fails to set (because of motion, or lights on, or whatever), the piston re-runs itself after five minutes, but only at night time (I don’t want to run the piston every five minutes during the day, because that seems cosmically wasteful).

Hi, I have a simple Piston that evaluates 2 conditions:

If Switch 1 is ON and Motion 1 changes to Active Turn Switch 2 ON

Now what I am seeing is the following:

  • If Switch 1 is OFF and Motion 1 Changes to Active the switch 2 would NOT go to ON (Which is Excepted)
  • On the smart things events I see that Smartthings executed the Piston

Is that normal ?

I am hoping someone can help me with an issue Im having where Core seems to only run my ‘Simple’ routine when the first condition changes. If the second condition changes, it doesnt act. Here is my problem.

I am comparing the temperature of a sensor to the temperature at my thermostat. If the sensor is more than one degree below the thermostat, turn on the furnace fan. Else, set furnace fan to auto.

Piston Mode: Simple

If:
-Iris Temp Sensor temperature is less than {[Thermostat Temperature] - 1}

Using Thermostat

- Set fan to On

Else

- Set Fan to Auto

Then the first condition changes (Temp Sensor) then the piston will either turn on the fan, or set it to auto. But if the second condition changes (Temp at Thermostat), then the Piston doesnt seem to do anything.

I thought that since Im not using a Trigger, that any change, of any condition would cause the piston to fire.

Instead, only a condition change on the first condition seems to cause the condition to fire.

For example, my temp sensor was at 20 C, and my thermostat was at 21.5 C. The piston had turned on the fan once the temperature sensor fell to 20 C. But when the thermostat temperature then dropped to 21 C, it should have triggered the piston again which would have resulted in the fan being set to auto. In this case, I can look and see that Core has correctly evaluated the piston as false, but it doesnt actually run the ‘else’ action.

Any thoughts? Im thinking of splitting these two statements up into separate pistons if I cant find a solultion.

Thanks.

Hi,

I have several core pistons. But now I want to use core for motion controlled lights. Activating the light when there is motion is easy. I want to turn off the light when there is no motion for more than 3 minutes.
So I combined 2 conditions:

Each of Living Room Sensor and Living Room Sensor X motion is inactive
AND
Each of Living Room Sensor and Living Room Sensor X motion did not change in the last 10 minutes

There are also additional conditions:

AND
Living Room Switch switch is on (this is always on for now)
AND 
Variable {@lroom} (as number) is equal to 1 (this is 1 when I check from global variables)
AND
Time is between 2:00 AM EET and 6:30 PM EET

But this does not trigger the lights off.
What may be wrong ?