CoRE and Piston Rules Engine, first design steps

It makes sense :slight_smile:

Ok time to step outside my comfort zone to go to the next level with my CoRE install. I want to take the average temperature of all 3 of my outside sensors and have that be the current temp. Currently I have a thermostat control temp that is reading the temp from my chicken coop but sometimes that one reports a warmer temp than the others on the house so I’d rather just average them all out.
I was looking at how to do this with a global variable but I’m not sure how to tell…and then a thought comes to mind as I type this.

Will I just create a piston to go update the global variable that runs say every 3 mins or whatever (don’t want to throw too much load on the ST platform for a simple thing :slight_smile: )

Ok so how do I tell the variable to take the reading from these 3 devices then divide it by 3 to come up with the average value?

Thank you all for your help with this. I’m trying to get my neighbor to install the CoRE but he’s not ready to take that plunge just yet.

It’s been awhile since I’ve done this, but when you define your variable, you can perform very rudimentary math with additional parameters. I can’t recall if you can divide, though :smirk:

This is actually how i am trying to do it and as far as I can tell, the only way to do it in the app. you select the condition of ‘date & time’. in that you set the time and it allows for repeating dates (once a year). Am I missing something - I hope I am!

Also, I wrote this piston originally in 2016 in December. Then it DID say the ‘next scheduled’ was May 2017. *Note this fits your idea of ‘already in the year’ yet since it was December, it also held correct as May would be the next time.

However today I was playing with the CoRE dashboard and I noticed it was telling me the next scheduled run was 475 days later - which is May 2018. (It seemed that as the year changed), it MOVED OUT my next schedule another year - which makes no sense - I swear I had not edited it - I was simply in the dashboard.

I also can not seem to write a separate piston to handle JUST this year, leaving the future automations.

Open to ideas!

Yeah, what @elf said. You’ll probably have to add two tasks, 1 to add the 3 values, then next is the division.

Something in the line of
Set number variable tempSum = temp1 + temp2 + temp3
Set number variable avgTemp = tempSum / 3

Make the variable global with a @.

1 Like

Hmmm … I have a piston that I created last year that also has yearly schedules and worked correctly. I need to check it to see if anything has changed. But first, I need a data network connection out here where I work (can’t open the ST app)!!! :unamused: Gonna have to wait til I get home.

Just remembered that I posted part of it over here:

It showed the correct ‘next event’ as of the 1st of January. Gonna check again to make sure, though.

Everything is fine with the piston. Pending future events are correct.

I have one as well. I know it was OK.
This one is for my wife’s birthday…
needs serious investigation.

EDIT: Well I have found a way round it.
Changed it to happens everyday but only if the day is 3rd of June.
Now OK.
Inside the red box said 502 days until I just changed to be as below.

1 Like

Can somebody tell me why resume program and some of the other selections for thermostats have triangles before them with parentheses and periods inside of them?

I just got a Wi-Fi thermostat, and I want to Resume program when I get home. I just don’t know why some of the commands of triangles before them and some of them do not.

That ‘triangle’ is actually a house. Those are capabilities exposed to CoRE by the DTH you are using.

Hehe I figured this out. Also found out I had to save the value of the 3 temp sensors to one variable as the total. Then take that variable and divide it by 3 to get my actual averaged result. Woohoo thanks for making me think today guys :slight_smile:

1 Like

Thank you. P.S. I like snickers. ( I miss the 10 char. minimum )

Thanks @bobbles , that seems to have done the trick!

Love this community! Get better and more help here than I do at work for work issues!


I want to get an attribute of a device and save it to a variable then create a push notification using that variable.
How should I define the variable ? The fields are freetext. So should it be something like $calling or {calling} or juts plain calling ?

Should I initialize the variable elsewhere ?


BTW: CoRE - Get peer assistance here with setting up Pistons

Looking to build a very simple announcement and just starting out. So far it’s very straightforward to set a presence state arrival of either device (2 of them), door open, motion sensor… -> LANnouncer, but now trying to figure out how to pass the presence device name into the speak text. Can someone point me to the topic or fields syntax list as a hint?

In the norification message write {$currentEventDevice} where you want the device name to be. Ensure you use the { } and the exact same case.

Thanks mate! Is there a tag list someplace I’m not quite seeing? Going through the thread again…

Inside the piston, go to Local variables, or find them listed under the piston in the dashboard

I’m looking for a rule that can have many else-if conditions (or similar) - is that doable in a single piston? Currently, I’m chaining together a bunch of them by triggering the next set of conditions (as a new piston) via the else condition

Specifically: I want to make a single piston that inspects the current state of my home, and sets the mode appropriately. (I have several events that can occur which temporarily change the mode, and want to make sure that when those events are over, the mode returns to what it should be)

I do this with then if for setting my thermostat as it is constantly
evaluating the conditions. I have one main thing for it to watch then do
the rest down below.