[RELEASE CANDIDATE] CoRE (Community's own Rule Engine)

UPDATE DEC 19 2017:

If you are still using CoRE, please update to the latest version as soon as you can. Here’s what changed:

v0.3.16e.20171219 - RC - Replaced recovery safety nets using unschedule() with a much more optimized method that does not affect ST as much as unschedule() does

This is important as CoRE has been identified as a major choke point on a certain method that it uses (ST describes that as expensive in their documentation. As it turns out, it is. With ST’s help, CoRE is now able to recover from timeouts much faster and with a lot less resources than by using its own recovery safety net. You should also consider moving on to webCoRE instead, as CoRE is no longer actively maintained and only gets critical updates.

Thank you

Continuing in the BETA process of CoRE (milestone 1 topic here and milestone 2 topic here), we’ve now moved to RELEASE CANDIDATE. This is the last step before a full release and it’s going to focus on taking CoRE through the publishing process, making all necessary changes to make it compliant with SmartThings’s requirements. While necessary additions will occur here and there, adding features is NOT the main focus of this RC stage.

WARNING: As mentioned before, this SmartApp is in a BETA development stage and may be quirky. It may also change rapidly and drastically, involving a full reset of the app in order to upgrade.

It is not recommend to install this SmartApp in a “production” environment, but we encourage people to try it out.

Official wiki is here. It’s still a work in progress, but it’s a good starting point.

IMPORTANT: This topic addresses bugs and errors encountered while using CoRE. If you need general assistance with setting up a piston, please do so at CoRE - Get peer assistance here with setting up Pistons

IMPORTANT: When posting a possible bug/error - please post the version of your CoRE, a picture of your piston and any logs if available. When confirmed as a bug, a new issue should be created in github to ensure it gets tracked down and resolved. It is recommended that you always run the latest version of CoRE to ensure that the bug you may be experiencing hasn’t already been fixed.

The SmartApp can be installed via GitHub integration into your IDE or can be found here

To install the SmartApp using GitHub integration, go to your IDE, go to SmartApps, tap on Settings and Add new repository with ady624 / CoRE / master in the three fields. Then use the Update from Repo button. Make sure you either tick the Publish option while updating from the repository, or publish the app after each update.

NOTE: It is not required, nor necessary to donate to use this SmartApp. This is a free open source software and it is my way to pay my dues to those before me. But if you feel like it, you can donate here.

Thank you


damn does that mean no more feature requests??? RC’s are usually feature complete :grin:

keep up the good work Ady!!

We’ll always add features, as needed. But I think we’re pretty done with the features at this point, anything pending?

1 Like

just kidding mate - just sent another crate your way for all the effort!!

need to get back to testing the dim to on and off procedures but find me some time to doing so :slight_smile:


For Action Restrictions, isn’t the “Cancel execution on condition state change” option pending? :wink:

1 Like

I remember a guy who popped his head out of nowhere on the Rule Machine thread and he was bragging that he can do better. Like many, I really underestimated his capabilities:

Adrian, you are a scholar, you did it! Thank you for all your work and countless hours you put in designing this! You did an awesome job.



I thought that was done, but there was a bug in v0.2.14d or so…?

The fix (v0.2.150) was for “Only execute on condition state change” :slight_smile:

1 Like

THANK YOU - cheers :smiley:

You are welcome mate buy another device and create a good device handler for it or just drink it :slight_smile:

1 Like

Pushbullet integration?


@ady624 are we able to detect which unlock code was used on a smart lock?

1 Like

Yeah @ady624 now that the basic things have settled, can you add this to your list. The stock DH gives out which code was used, not the numbers, but at least the code # would be super helpful to use in CoRE (maybe as variable?)

1 Like

This is great. Setting up some pistons.

Quick question: after creating a couple of pistons and leaving the CoRE interface, I can’t get back to the “main” CoRE screen (where it shows you your pistons list and you can choose to make more). Instead, selecting CoRE from the My SmartApps menu takes me straight to the details of one of my pistons. Going “back” from the piston skips the main screen and goes all the way out to My SmartApps menu again. Is there a way to get to the main screen that I’m not seeing? Or is this a bug?


Access CoRE fromthe Automations tab, not the Marketplace…

1 Like

Is that code present anywhere in the event? Data parameter?

Duh. Perfect. Thanks!

1 Like

I am currently running “User Lock Manager” to set/enable lock codes. From those, I can trigger virtual switches/routines (unlock, disarm, panic mode, etc).

The User Lock Manager code for the SmartApp and Handler is available in github, and probably shows where the codes are coming from and how to manage them (in the event, state, or otherwise).

yup it should be “usedCode” and the position of the code (1st code, 2nd code etc…) is what it should be. Is this what you are looking for? here is an example from the logs

"zw device: 09, command: XXX, payload:XXXXX " parsed to ['name':'lock', 'value':'unlocked', 'descriptionText':Front Door Lock was unlocked with code 1, 'data':['usedCode':1, 'type':'keypad'], 'isStateChange':true, 'displayed':true, 'linkText':'Front Door Lock']


Yep,just tested on my Kwikset, data: { “usedCode” : 1 }

Will implement it.