CoRE - Get peer assistance here with setting up Pistons

I just can’t see the point of paying for gas to heat my garden if Mrs O decides to leave the doors open for a couple of hours!

Having said that, the same routines could easily be used to reduce the temperature rather than changing the heating mode.

1 Like

What you’re trying to do can be done in CoRE. First thing that needs to be figured out is saving that current heating state, with that my next question would be what thermostat are you using?

I’m using Honeywell Evohome (a zoned heating system). With a slightly modified version of this integration: [RELEASE] Honeywell Evohome Integration

I looked at the link you gave, it looks like the dh has a resume function? Will it resume your previous heat mode and setpoint if you just resume? It would be great if it it does that since there’s no need to mess with saving the heatpoint to a variable.

Edit: without saving the heatpoint to a variable, this is how I see it in my head. I have a boolean variable in there just to make sure the piston doesn’t do anything with the door closing on quick in/outs. I may be over my head on this one since I don’t have any idea how that particular thermostat works :slight_smile:

Door stays open for 1 minute
Thermostat is heat mode?
Using Thermostat (cancel on piston change)
  > Set boolean variable 'heatModeSuspend' = true
  > setThermostatMode off

Door changes to closed
Variable heatModeSuspend equals true
Using Thermostat
  > resume()
  > Set boolean variable 'heatModeSuspend' = false
1 Like

I noticed in a basic If statement that when I choice sensor and I want to tell CoRE to watch if a sensor (door sensor) is open, I have to write open instead of pick from a radio button open or closed but if I do that with a motion sensor I can pick active or inactive.

Is there a reason for that?

You might want to visit the Harmony + ST thread where they discuss the integration.

Unfortunately resume() just clears any temporary setpoint for a given zone.

it has nothing to do with heating mode.

I’m having this problem as well. The suggested fix in August was to access SmartApps using the hamburger menu, but I’m not seeing that option now (I assume ST changed the interface in a recent update). Any ideas?

EDIT: Nevermind, found the option under “Automation” instead.

Below is how I have mine setup. It works well for me, hope this helps:

The “Follow-up with Piston” command is simply calling this same CoRE Piston 3 successive times 150 seconds apart.


Can anyone tell me why this piston fails to do anything either with or without a starting level %?


Your about 6 months behind on your version of CoRE. Update to the lastest version and see what haopens.

Wow, thanks, I didn’t realize I had installed CoRE before I understood github integration. Will give it a try!

So I updated it and rebuilt the piston with the same response.

My question is: I have a piston turning the light on and then off after 10 minutes of no motion. Do I need to put something in there that cancels the first piston? Is it the Pause Piston? Does it need to be resumed after waiting ten minutes and the turning off action is complete?

Can a Global Variable be set to a different value from within a Piston?

I’m having trouble with variable setting and a momentary switch.
Not long loaded CoRE and so still getting my head around things.
I’ve a momentary switch (fibaro relay) opening/closing my curtains. I want to record the state (open/closed) so I can program them only to close in an evening, rather than just toggle from the last event.
I’ve set up a simple piston - condition ‘switch changes’ then look to see if variable ‘open’, else set ‘closed’. It doesn’t work.
If I use the same piston but with a light switched instead of the curtains, it does work.

I’m really struggling with the reason! Thankyou for any help.

Alright experts have a few questions for you:

I have setup a piston to alert me via push notification when a battery level of any of my sensors get below 25%. I did this using {$currentEventDevice} in the push notification. Questions are the following…

1.) If there is more than one sensor will there be more than one push notification?
2.) Can I alter this piston to alert me once a day as long as there are devices that are less than 25%?
3.) Is there a way to send a report of some kind lets say via text in another piston comma delimtied form that would show me the battery level of each device…I know there are smart apps for this but honestly they aren’t reliable. I’ve used them and can’t get the granularity that I need.
4.) How will this affect battery life and are there things that I can do to the above pistons to ensure better battery life?

Alright guys want to split these up as they are different scenarios and I thought I would be more likely to get a response from each scenario if I split them up.

I would like to replace notify me when smartapp with a simple piston. Is there a way to only alert me when motion is here/there or contact is here/there on a per sensor basis once every X number of minutes per sensor?

Here is another one… I setup a nightly safety check that checks all the contact sensors and sends a push notification if one of them is open after dark. My question is since I used the {$currentEventDevice} will it send me a push notification for each device?

Also how do i set this up to alert me every hour after the first alert until the sensors are closed? Is that possible?

Automation Hoarder

I noticed that your using… is blank, I’ve never seen that before. If you go back into that piston can you confirm that you have chosen a device? Also have you tried again with a starting value to see if it does work? Regarding your other motion piston I think it would depend on the timing of the events. It could turn off your light prior to your other piston fading and turning it off. You can view the recent events of the device and see what’s going on too. Post a pic of your motion piston and mayb we can work it all into one once I see your intentions.

Just set the variable again with a different value by providing your own or doing operations on it. Something like Set number variable @loopCount = @loopCount +1