<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.webcore.co/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robin+Winbourne</id>
		<title>webCoRE Wiki - Web-enabled Community's own Rule Engine - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.webcore.co/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robin+Winbourne"/>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/Special:Contributions/Robin_Winbourne"/>
		<updated>2026-04-25T11:21:23Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=User:WCmore&amp;diff=835</id>
		<title>User:WCmore</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=User:WCmore&amp;diff=835"/>
				<updated>2019-03-11T08:50:28Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum scelerisque neque quam. Etiam ut dignissim felis. Aenean in felis ut nisl dignissim convallis eget ac dui. Sed fringilla, sem a consequat pellentesque, metus nibh ullamcorper lectus, at mollis leo ipsum vel ante. Aenean et felis ut quam tempus varius at quis lacus. Proin id odio sagittis eros convallis tincidunt non luctus tellus. Nullam massa lorem, sollicitudin ut lorem aliquam, lacinia finibus nisi. Donec pharetra quam imperdiet nisl dictum, vitae vulputate risus viverra. Praesent aliquet urna non urna vestibulum ultricies. Quisque euismod vulputate arcu, ut fringilla magna maximus a.&lt;br /&gt;
&lt;br /&gt;
Pellentesque efficitur arcu mi, at laoreet magna semper id. Etiam eget ullamcorper turpis. Vestibulum tempor, tortor vel iaculis aliquet, lorem eros vulputate dui, pharetra molestie ante erat sit amet lorem. Nunc nec mollis mauris. Duis quis convallis erat. Sed convallis, nulla sed tempor facilisis, est odio iaculis velit, eget malesuada justo orci sit amet nulla. Nunc nec est quis diam vehicula pretium. Phasellus at dui dolor. Pellentesque vulputate libero dolor, id iaculis ipsum cursus quis.&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=User_talk:WCmore&amp;diff=836</id>
		<title>User talk:WCmore</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=User_talk:WCmore&amp;diff=836"/>
				<updated>2019-03-11T08:50:28Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''webCoRE Wiki - Web-enabled Community's own Rule Engine''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Robin Winbourne|Robin Winbourne]] ([[User talk:Robin Winbourne|talk]]) 08:50, 11 March 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=679</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=679"/>
				<updated>2018-01-16T13:58:06Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: /* GitHub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: both; margin-right: 2em; margin-top: 1em; margin-bottom: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017.  &lt;br /&gt;
&lt;br /&gt;
Currently webCoRE is in the Second Beta milestone as of June 7th, 2017.  Lots of bugs have been squashed and several new features have been implemented.  &lt;br /&gt;
&lt;br /&gt;
Please review the [[webCoRE todo]] list for a loose road map.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
{{:Glossary}}&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the steps below.  &lt;br /&gt;
&lt;br /&gt;
Please be sure to read through all the instructions.  If you are still getting stuck then check the troubleshooting sections.  Should you still have problems then please feel free to ask for some help on the SmartThings Forums.  Be sure to find the latest webCoRE help post.&lt;br /&gt;
&lt;br /&gt;
=Installing webCoRE=&lt;br /&gt;
These instructions will guide you through installing webCoRE via GitHub integration or manually all the way to adding devices and authorizing your browser for use.  Be sure to follow all the steps as proper order is crucial when installing for the first time.&lt;br /&gt;
&lt;br /&gt;
==GitHub Installation (preferred method)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;y_ElUwmmI6Y&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# If you are in the UK/EU, click this link [https://graph-eu01-euwest1.api.smartthings.com/githubAuth/step1 link] and follow the on-screen instructions to activate GitHub integration for your IDE shard.&lt;br /&gt;
# Login to the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''Settings''' button at the top of the page.&lt;br /&gt;
#:[[File:Settings.jpg]]&lt;br /&gt;
# Click the '''Add new repository''' link at the bottom of the pop up.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;ady624&amp;lt;/code&amp;gt; in the '''Owner''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;webCoRE&amp;lt;/code&amp;gt; in the '''Name''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; in the '''Branch''' column.&lt;br /&gt;
# Click '''Save''' (do not hit the Enter key, it will exit the form without saving).&lt;br /&gt;
#:[[File:Githubrepo.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCore.groovy&amp;quot; from the '''New (only in GitHub)''' box. {{Warning |Do not update all at once}}&lt;br /&gt;
#:[[File:Githubinstall_webcoreonly.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
# Click again on '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCoRE Piston.groovy&amp;quot;, &amp;quot;webCoRE Storage.groovy&amp;quot;and &amp;quot;webCoRE Dashboard.groovy&amp;quot; from the '''New (only in GitHub)''' box.&lt;br /&gt;
#:[[File:Githubinstall_allchecked.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
&lt;br /&gt;
==Manual Install==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Login to the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy webCore.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save'''.&lt;br /&gt;
# Click '''Publish'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Piston Smart App  ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy webCoRE-piston.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Storage Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy webCoRE-storage.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Dashboard Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy webCoRE-dashboard.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling OAuth for webCoRE==&lt;br /&gt;
# Navigate to the '''My SmartApps''' page if you are not already there.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the edit button to the left of '''ady624 : webCoRE''', it looks like a rounded square with a pencil in it.&lt;br /&gt;
#:[[File:Editwebcore.jpg]]&lt;br /&gt;
# Scroll down and click on '''OAuth'''.&lt;br /&gt;
# Click the '''Enable OAuth in SmartApp''' button.&lt;br /&gt;
# Click the '''Update''' button at the bottom of the page.&lt;br /&gt;
#:[[File:Oauth.jpg|frameless|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing webCoRE==&lt;br /&gt;
# Open the SmartThings app on your mobile device.&lt;br /&gt;
# Tap the '''Marketplace''' icon at the bottom of the screen. If you are in a Room or Device within the app you will need to go back to '''My Home'''.&lt;br /&gt;
# Tap the '''SmartApps''' header at the top of the page.&lt;br /&gt;
# Scroll down and tap '''My Apps'''.&lt;br /&gt;
# Scroll down until you find '''webCoRE''' and tap it. Do not tap '''webCoRE Piston'''. If you can't find '''webCore''' you likely skipped some steps above.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Here you can change the name from '''webCoRE''' to anything you desire then tap '''Next'''.  (''Recommend leaving it unless you are working with multiple instances.'')&lt;br /&gt;
# Choose a password and expiration length then tap '''Next'''.&lt;br /&gt;
# Scroll through the list and select all of the devices you want webCoRE to have access to. If you do not do this, you will not be able to use those devices in webCoRE. This must also be done again when adding new devices to your SmartThings Account.  webCoRE will not automatically import them.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Tap '''Done'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opening the new dashboard from your phone==&lt;br /&gt;
# From within the SmartThings app, tap the Automations icon at the bottom of the screen and select the SmartApps section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically webCoRE, unless you edited the name during the installation process.&lt;br /&gt;
# Tap Dashboard.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using webCoRE from another browser==&lt;br /&gt;
You cannot bookmark the URL you launched from the SmartThing app. In order to use webCoRE on another device you must follow these instructions.&lt;br /&gt;
&lt;br /&gt;
# From within the SmartThings app, tap the '''Automations''' icon at the bottom of the screen and select the '''SmartApps''' section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically '''webCoRE''', unless you edited the name during the installation process.&lt;br /&gt;
# Tap '''Register a browser''', a page will appear providing you with a registration code. The code expires in 3 minutes and can only be  used once.&lt;br /&gt;
#: [[File:Register-browser.png|Register a Browser]] [[File:Register-browser-code.png|Register a Browser]]&lt;br /&gt;
# On your other device, open the browser and visit &amp;lt;i&amp;gt;[https://webcore.co/re webcore.co/re]&amp;lt;/i&amp;gt;&lt;br /&gt;
# Enter the code and click '''Register'''.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Updating webCoRE =&lt;br /&gt;
[[file:UpdateAlert.png]]&amp;lt;BR&amp;gt;&lt;br /&gt;
When you see the alert that there is a new version available or that your smartapps are not the same version then you will need to update the webCoRE code.  This has a few benefits besides being on the latest and greatest version. It is best to keep webCoRE up to date because bugs are constantly getting squashed and new features added with each version.  This will make troubleshooting easier when you are running into issues and seeking help. Lastly SmartThings keeps the most used SmartApps in their cache which means quicker response times on your pistons. &lt;br /&gt;
&lt;br /&gt;
For those of you with gitHub integration this is a quick and painless process.  If you manually installed then it is a similar process as before.  Either way updating only takes a few minutes of your time. &lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
#Log into the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
#Select My SmartApps&lt;br /&gt;
#*You will see all the webCoRE SmartApps listed in a purple color&lt;br /&gt;
#Click update from Repo&lt;br /&gt;
#Select webCoRE(Master)&lt;br /&gt;
#*In the Obsolete column you will see the 4 webCoRE SmartApps&lt;br /&gt;
#Select all 4 checkboxes&lt;br /&gt;
#Click the publish checkbox&lt;br /&gt;
#Click Execute Update&lt;br /&gt;
&lt;br /&gt;
== Manual Update == &lt;br /&gt;
This requires a little bit more work than gitHub integration but still will only take a few moments.  Visit the links below and copy and paste the new raw code over the obsolete code then publish and execute update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Link to Raw gitHub code&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Dashboard&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Piston&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Storage&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update Complete ==&lt;br /&gt;
That is all you have to do.  Your webCoRE instance's are now up to date.  However if you have multiple locations(hubs) then you will need to do this for each location(hub).&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
Here are some common troubleshooting things to try if you are having issues with the following categories&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
[[File:500error.png|frameless|400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you receive this error it may be because you installed and published both &amp;quot;webCore.groovy&amp;quot; and other SmartApps at the same time. Please do them in order per the instructions. Be sure to install/publish &amp;quot;webCore.groovy&amp;quot; first then the others after (See steps 11-16).  You can do the other SmartApps at the same time after &amp;quot;webCore.groovy&amp;quot; has been installed and published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Endless Spinning Square&lt;br /&gt;
#Open The SmartThings App&lt;br /&gt;
#Go into settings&lt;br /&gt;
#Click the map location&lt;br /&gt;
#Move the pin on the map around&lt;br /&gt;
#Position on your actual location&lt;br /&gt;
#save actual location&lt;br /&gt;
#Save the settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating your first piston =&lt;br /&gt;
{{:Creating your first piston}}&lt;br /&gt;
&lt;br /&gt;
=Sample Pistons=&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
= Understanding the basics =&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE child SmartApp (''webCoRE Piston'') ==&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE parent SmartApp (''webCoRE'') ==&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
== The [[Dashboard|dashboard]] ==&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
=Anatomy of a webCoRE Piston=&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
==The ''settings'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
==The ''define'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable_data_types|Variable Data Types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
==The ''execute'' section==&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
=Misc Pages=&lt;br /&gt;
==[[webCoRE Logging]]==&lt;br /&gt;
==[[Functions]]==&lt;br /&gt;
==[[Expressions]]==&lt;br /&gt;
==[[Case_Traversal_Policy|Case Traversal Policy]]==&lt;br /&gt;
==[[Execution_Method|Execution Method]]==&lt;br /&gt;
==[[Piston_State|Piston State]]==&lt;br /&gt;
==[[Task_Scheduling_Policy|Task Scheduling Policy]]==&lt;br /&gt;
==[[Weather | Weather]]==&lt;br /&gt;
==[[NFL | NFL API]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=678</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=678"/>
				<updated>2018-01-16T13:56:48Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: /* webCoRE Smart App */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: both; margin-right: 2em; margin-top: 1em; margin-bottom: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017.  &lt;br /&gt;
&lt;br /&gt;
Currently webCoRE is in the Second Beta milestone as of June 7th, 2017.  Lots of bugs have been squashed and several new features have been implemented.  &lt;br /&gt;
&lt;br /&gt;
Please review the [[webCoRE todo]] list for a loose road map.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
{{:Glossary}}&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the steps below.  &lt;br /&gt;
&lt;br /&gt;
Please be sure to read through all the instructions.  If you are still getting stuck then check the troubleshooting sections.  Should you still have problems then please feel free to ask for some help on the SmartThings Forums.  Be sure to find the latest webCoRE help post.&lt;br /&gt;
&lt;br /&gt;
=Installing webCoRE=&lt;br /&gt;
These instructions will guide you through installing webCoRE via GitHub integration or manually all the way to adding devices and authorizing your browser for use.  Be sure to follow all the steps as proper order is crucial when installing for the first time.&lt;br /&gt;
&lt;br /&gt;
==GitHub Installation (preferred method)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;y_ElUwmmI6Y&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# If you are in the UK/EU, click this link [https://graph-eu01-euwest1.api.smartthings.com/githubAuth/step1 link] and follow the on-screen instructions to activate GitHub integration for your IDE shard.&lt;br /&gt;
# Login to the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''Settings''' button at the top of the page.&lt;br /&gt;
#:[[File:Settings.jpg]]&lt;br /&gt;
# Click the '''Add new repository''' link at the bottom of the pop up.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;ady624&amp;lt;/code&amp;gt; in the '''Owner''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;webCoRE&amp;lt;/code&amp;gt; in the '''Name''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; in the '''Branch''' column.&lt;br /&gt;
# Click '''Save''' (do not hit the Enter key, it will exit the form without saving).&lt;br /&gt;
#:[[File:Githubrepo.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCore.groovy&amp;quot; from the '''New (only in GitHub)''' box. {{Warning |Do not update all at once}}&lt;br /&gt;
#:[[File:Githubinstall_webcoreonly.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
# Click again on '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCoRE Piston.groovy&amp;quot;, &amp;quot;webCoRE Storage.groovy&amp;quot;and &amp;quot;webCoRE Dashboard.groovy&amp;quot; from the '''New (only in GitHub)''' box.&lt;br /&gt;
#:[[File:Githubinstall_allchecked.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
&lt;br /&gt;
==Manual Install==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Login to the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy webCore.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save'''.&lt;br /&gt;
# Click '''Publish'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Piston Smart App  ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy webCoRE-piston.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Storage Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy webCoRE-storage.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Dashboard Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy webCoRE-dashboard.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling OAuth for webCoRE==&lt;br /&gt;
# Navigate to the '''My SmartApps''' page if you are not already there.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the edit button to the left of '''ady624 : webCoRE''', it looks like a rounded square with a pencil in it.&lt;br /&gt;
#:[[File:Editwebcore.jpg]]&lt;br /&gt;
# Scroll down and click on '''OAuth'''.&lt;br /&gt;
# Click the '''Enable OAuth in SmartApp''' button.&lt;br /&gt;
# Click the '''Update''' button at the bottom of the page.&lt;br /&gt;
#:[[File:Oauth.jpg|frameless|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing webCoRE==&lt;br /&gt;
# Open the SmartThings app on your mobile device.&lt;br /&gt;
# Tap the '''Marketplace''' icon at the bottom of the screen. If you are in a Room or Device within the app you will need to go back to '''My Home'''.&lt;br /&gt;
# Tap the '''SmartApps''' header at the top of the page.&lt;br /&gt;
# Scroll down and tap '''My Apps'''.&lt;br /&gt;
# Scroll down until you find '''webCoRE''' and tap it. Do not tap '''webCoRE Piston'''. If you can't find '''webCore''' you likely skipped some steps above.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Here you can change the name from '''webCoRE''' to anything you desire then tap '''Next'''.  (''Recommend leaving it unless you are working with multiple instances.'')&lt;br /&gt;
# Choose a password and expiration length then tap '''Next'''.&lt;br /&gt;
# Scroll through the list and select all of the devices you want webCoRE to have access to. If you do not do this, you will not be able to use those devices in webCoRE. This must also be done again when adding new devices to your SmartThings Account.  webCoRE will not automatically import them.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Tap '''Done'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opening the new dashboard from your phone==&lt;br /&gt;
# From within the SmartThings app, tap the Automations icon at the bottom of the screen and select the SmartApps section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically webCoRE, unless you edited the name during the installation process.&lt;br /&gt;
# Tap Dashboard.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using webCoRE from another browser==&lt;br /&gt;
You cannot bookmark the URL you launched from the SmartThing app. In order to use webCoRE on another device you must follow these instructions.&lt;br /&gt;
&lt;br /&gt;
# From within the SmartThings app, tap the '''Automations''' icon at the bottom of the screen and select the '''SmartApps''' section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically '''webCoRE''', unless you edited the name during the installation process.&lt;br /&gt;
# Tap '''Register a browser''', a page will appear providing you with a registration code. The code expires in 3 minutes and can only be  used once.&lt;br /&gt;
#: [[File:Register-browser.png|Register a Browser]] [[File:Register-browser-code.png|Register a Browser]]&lt;br /&gt;
# On your other device, open the browser and visit &amp;lt;i&amp;gt;[https://webcore.co/re webcore.co/re]&amp;lt;/i&amp;gt;&lt;br /&gt;
# Enter the code and click '''Register'''.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Updating webCoRE =&lt;br /&gt;
[[file:UpdateAlert.png]]&amp;lt;BR&amp;gt;&lt;br /&gt;
When you see the alert that there is a new version available or that your smartapps are not the same version then you will need to update the webCoRE code.  This has a few benefits besides being on the latest and greatest version. It is best to keep webCoRE up to date because bugs are constantly getting squashed and new features added with each version.  This will make troubleshooting easier when you are running into issues and seeking help. Lastly SmartThings keeps the most used SmartApps in their cache which means quicker response times on your pistons. &lt;br /&gt;
&lt;br /&gt;
For those of you with gitHub integration this is a quick and painless process.  If you manually installed then it is a similar process as before.  Either way updating only takes a few minutes of your time. &lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
#Log into the SmartThings IDE&lt;br /&gt;
#Select My SmartApps&lt;br /&gt;
#*You will see all the webCoRE SmartApps listed in a purple color&lt;br /&gt;
#Click update from Repo&lt;br /&gt;
#Select webCoRE(Master)&lt;br /&gt;
#*In the Obsolete column you will see the 4 webCoRE SmartApps&lt;br /&gt;
#Select all 4 checkboxes&lt;br /&gt;
#Click the publish checkbox&lt;br /&gt;
#Click Execute Update&lt;br /&gt;
&lt;br /&gt;
== Manual Update == &lt;br /&gt;
This requires a little bit more work than gitHub integration but still will only take a few moments.  Visit the links below and copy and paste the new raw code over the obsolete code then publish and execute update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Link to Raw gitHub code&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Dashboard&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Piston&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Storage&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update Complete ==&lt;br /&gt;
That is all you have to do.  Your webCoRE instance's are now up to date.  However if you have multiple locations(hubs) then you will need to do this for each location(hub).&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
Here are some common troubleshooting things to try if you are having issues with the following categories&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
[[File:500error.png|frameless|400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you receive this error it may be because you installed and published both &amp;quot;webCore.groovy&amp;quot; and other SmartApps at the same time. Please do them in order per the instructions. Be sure to install/publish &amp;quot;webCore.groovy&amp;quot; first then the others after (See steps 11-16).  You can do the other SmartApps at the same time after &amp;quot;webCore.groovy&amp;quot; has been installed and published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Endless Spinning Square&lt;br /&gt;
#Open The SmartThings App&lt;br /&gt;
#Go into settings&lt;br /&gt;
#Click the map location&lt;br /&gt;
#Move the pin on the map around&lt;br /&gt;
#Position on your actual location&lt;br /&gt;
#save actual location&lt;br /&gt;
#Save the settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating your first piston =&lt;br /&gt;
{{:Creating your first piston}}&lt;br /&gt;
&lt;br /&gt;
=Sample Pistons=&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
= Understanding the basics =&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE child SmartApp (''webCoRE Piston'') ==&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE parent SmartApp (''webCoRE'') ==&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
== The [[Dashboard|dashboard]] ==&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
=Anatomy of a webCoRE Piston=&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
==The ''settings'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
==The ''define'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable_data_types|Variable Data Types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
==The ''execute'' section==&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
=Misc Pages=&lt;br /&gt;
==[[webCoRE Logging]]==&lt;br /&gt;
==[[Functions]]==&lt;br /&gt;
==[[Expressions]]==&lt;br /&gt;
==[[Case_Traversal_Policy|Case Traversal Policy]]==&lt;br /&gt;
==[[Execution_Method|Execution Method]]==&lt;br /&gt;
==[[Piston_State|Piston State]]==&lt;br /&gt;
==[[Task_Scheduling_Policy|Task Scheduling Policy]]==&lt;br /&gt;
==[[Weather | Weather]]==&lt;br /&gt;
==[[NFL | NFL API]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=677</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=677"/>
				<updated>2018-01-16T13:55:24Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: /* GitHub Installation (preferred method) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: both; margin-right: 2em; margin-top: 1em; margin-bottom: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017.  &lt;br /&gt;
&lt;br /&gt;
Currently webCoRE is in the Second Beta milestone as of June 7th, 2017.  Lots of bugs have been squashed and several new features have been implemented.  &lt;br /&gt;
&lt;br /&gt;
Please review the [[webCoRE todo]] list for a loose road map.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
{{:Glossary}}&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the steps below.  &lt;br /&gt;
&lt;br /&gt;
Please be sure to read through all the instructions.  If you are still getting stuck then check the troubleshooting sections.  Should you still have problems then please feel free to ask for some help on the SmartThings Forums.  Be sure to find the latest webCoRE help post.&lt;br /&gt;
&lt;br /&gt;
=Installing webCoRE=&lt;br /&gt;
These instructions will guide you through installing webCoRE via GitHub integration or manually all the way to adding devices and authorizing your browser for use.  Be sure to follow all the steps as proper order is crucial when installing for the first time.&lt;br /&gt;
&lt;br /&gt;
==GitHub Installation (preferred method)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;y_ElUwmmI6Y&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# If you are in the UK/EU, click this link [https://graph-eu01-euwest1.api.smartthings.com/githubAuth/step1 link] and follow the on-screen instructions to activate GitHub integration for your IDE shard.&lt;br /&gt;
# Login to the [https://account.smartthings.com SmartThings IDE].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''Settings''' button at the top of the page.&lt;br /&gt;
#:[[File:Settings.jpg]]&lt;br /&gt;
# Click the '''Add new repository''' link at the bottom of the pop up.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;ady624&amp;lt;/code&amp;gt; in the '''Owner''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;webCoRE&amp;lt;/code&amp;gt; in the '''Name''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; in the '''Branch''' column.&lt;br /&gt;
# Click '''Save''' (do not hit the Enter key, it will exit the form without saving).&lt;br /&gt;
#:[[File:Githubrepo.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCore.groovy&amp;quot; from the '''New (only in GitHub)''' box. {{Warning |Do not update all at once}}&lt;br /&gt;
#:[[File:Githubinstall_webcoreonly.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
# Click again on '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCoRE Piston.groovy&amp;quot;, &amp;quot;webCoRE Storage.groovy&amp;quot;and &amp;quot;webCoRE Dashboard.groovy&amp;quot; from the '''New (only in GitHub)''' box.&lt;br /&gt;
#:[[File:Githubinstall_allchecked.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
&lt;br /&gt;
==Manual Install==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Login to the [http://developer.smartthings.com SmartThings web UI].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy webCore.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save'''.&lt;br /&gt;
# Click '''Publish'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Piston Smart App  ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy webCoRE-piston.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Storage Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy webCoRE-storage.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Dashboard Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy webCoRE-dashboard.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling OAuth for webCoRE==&lt;br /&gt;
# Navigate to the '''My SmartApps''' page if you are not already there.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the edit button to the left of '''ady624 : webCoRE''', it looks like a rounded square with a pencil in it.&lt;br /&gt;
#:[[File:Editwebcore.jpg]]&lt;br /&gt;
# Scroll down and click on '''OAuth'''.&lt;br /&gt;
# Click the '''Enable OAuth in SmartApp''' button.&lt;br /&gt;
# Click the '''Update''' button at the bottom of the page.&lt;br /&gt;
#:[[File:Oauth.jpg|frameless|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing webCoRE==&lt;br /&gt;
# Open the SmartThings app on your mobile device.&lt;br /&gt;
# Tap the '''Marketplace''' icon at the bottom of the screen. If you are in a Room or Device within the app you will need to go back to '''My Home'''.&lt;br /&gt;
# Tap the '''SmartApps''' header at the top of the page.&lt;br /&gt;
# Scroll down and tap '''My Apps'''.&lt;br /&gt;
# Scroll down until you find '''webCoRE''' and tap it. Do not tap '''webCoRE Piston'''. If you can't find '''webCore''' you likely skipped some steps above.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Here you can change the name from '''webCoRE''' to anything you desire then tap '''Next'''.  (''Recommend leaving it unless you are working with multiple instances.'')&lt;br /&gt;
# Choose a password and expiration length then tap '''Next'''.&lt;br /&gt;
# Scroll through the list and select all of the devices you want webCoRE to have access to. If you do not do this, you will not be able to use those devices in webCoRE. This must also be done again when adding new devices to your SmartThings Account.  webCoRE will not automatically import them.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Tap '''Done'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opening the new dashboard from your phone==&lt;br /&gt;
# From within the SmartThings app, tap the Automations icon at the bottom of the screen and select the SmartApps section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically webCoRE, unless you edited the name during the installation process.&lt;br /&gt;
# Tap Dashboard.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using webCoRE from another browser==&lt;br /&gt;
You cannot bookmark the URL you launched from the SmartThing app. In order to use webCoRE on another device you must follow these instructions.&lt;br /&gt;
&lt;br /&gt;
# From within the SmartThings app, tap the '''Automations''' icon at the bottom of the screen and select the '''SmartApps''' section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically '''webCoRE''', unless you edited the name during the installation process.&lt;br /&gt;
# Tap '''Register a browser''', a page will appear providing you with a registration code. The code expires in 3 minutes and can only be  used once.&lt;br /&gt;
#: [[File:Register-browser.png|Register a Browser]] [[File:Register-browser-code.png|Register a Browser]]&lt;br /&gt;
# On your other device, open the browser and visit &amp;lt;i&amp;gt;[https://webcore.co/re webcore.co/re]&amp;lt;/i&amp;gt;&lt;br /&gt;
# Enter the code and click '''Register'''.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Updating webCoRE =&lt;br /&gt;
[[file:UpdateAlert.png]]&amp;lt;BR&amp;gt;&lt;br /&gt;
When you see the alert that there is a new version available or that your smartapps are not the same version then you will need to update the webCoRE code.  This has a few benefits besides being on the latest and greatest version. It is best to keep webCoRE up to date because bugs are constantly getting squashed and new features added with each version.  This will make troubleshooting easier when you are running into issues and seeking help. Lastly SmartThings keeps the most used SmartApps in their cache which means quicker response times on your pistons. &lt;br /&gt;
&lt;br /&gt;
For those of you with gitHub integration this is a quick and painless process.  If you manually installed then it is a similar process as before.  Either way updating only takes a few minutes of your time. &lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
#Log into the SmartThings IDE&lt;br /&gt;
#Select My SmartApps&lt;br /&gt;
#*You will see all the webCoRE SmartApps listed in a purple color&lt;br /&gt;
#Click update from Repo&lt;br /&gt;
#Select webCoRE(Master)&lt;br /&gt;
#*In the Obsolete column you will see the 4 webCoRE SmartApps&lt;br /&gt;
#Select all 4 checkboxes&lt;br /&gt;
#Click the publish checkbox&lt;br /&gt;
#Click Execute Update&lt;br /&gt;
&lt;br /&gt;
== Manual Update == &lt;br /&gt;
This requires a little bit more work than gitHub integration but still will only take a few moments.  Visit the links below and copy and paste the new raw code over the obsolete code then publish and execute update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Link to Raw gitHub code&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Dashboard&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Piston&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Storage&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update Complete ==&lt;br /&gt;
That is all you have to do.  Your webCoRE instance's are now up to date.  However if you have multiple locations(hubs) then you will need to do this for each location(hub).&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
Here are some common troubleshooting things to try if you are having issues with the following categories&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
[[File:500error.png|frameless|400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you receive this error it may be because you installed and published both &amp;quot;webCore.groovy&amp;quot; and other SmartApps at the same time. Please do them in order per the instructions. Be sure to install/publish &amp;quot;webCore.groovy&amp;quot; first then the others after (See steps 11-16).  You can do the other SmartApps at the same time after &amp;quot;webCore.groovy&amp;quot; has been installed and published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Endless Spinning Square&lt;br /&gt;
#Open The SmartThings App&lt;br /&gt;
#Go into settings&lt;br /&gt;
#Click the map location&lt;br /&gt;
#Move the pin on the map around&lt;br /&gt;
#Position on your actual location&lt;br /&gt;
#save actual location&lt;br /&gt;
#Save the settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating your first piston =&lt;br /&gt;
{{:Creating your first piston}}&lt;br /&gt;
&lt;br /&gt;
=Sample Pistons=&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
= Understanding the basics =&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE child SmartApp (''webCoRE Piston'') ==&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE parent SmartApp (''webCoRE'') ==&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
== The [[Dashboard|dashboard]] ==&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
=Anatomy of a webCoRE Piston=&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
==The ''settings'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
==The ''define'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable_data_types|Variable Data Types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
==The ''execute'' section==&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
=Misc Pages=&lt;br /&gt;
==[[webCoRE Logging]]==&lt;br /&gt;
==[[Functions]]==&lt;br /&gt;
==[[Expressions]]==&lt;br /&gt;
==[[Case_Traversal_Policy|Case Traversal Policy]]==&lt;br /&gt;
==[[Execution_Method|Execution Method]]==&lt;br /&gt;
==[[Piston_State|Piston State]]==&lt;br /&gt;
==[[Task_Scheduling_Policy|Task Scheduling Policy]]==&lt;br /&gt;
==[[Weather | Weather]]==&lt;br /&gt;
==[[NFL | NFL API]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=User:Bfara83&amp;diff=675</id>
		<title>User:Bfara83</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=User:Bfara83&amp;diff=675"/>
				<updated>2018-01-16T07:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Active Smartthings user that been on the Smartthings platform for 3 years now and webCoRE 2 weeks after it was released.  You can call me the tiles guy, I have tiles for every device I can make tiles for and that list continues to grow as I have time in evenings.   Tiles Tiles Tiles&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=User_talk:Bfara83&amp;diff=676</id>
		<title>User talk:Bfara83</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=User_talk:Bfara83&amp;diff=676"/>
				<updated>2018-01-16T07:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''webCoRE Wiki - Web-enabled Community's own Rule Engine''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Robin Winbourne|Robin Winbourne]] ([[User talk:Robin Winbourne|talk]]) 07:54, 16 January 2018 (UTC)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=672</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=672"/>
				<updated>2017-12-04T18:43:01Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: /* GitHub Installation (preferred method) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: both; margin-right: 2em; margin-top: 1em; margin-bottom: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017.  &lt;br /&gt;
&lt;br /&gt;
Currently webCoRE is in the Second Beta milestone as of June 7th, 2017.  Lots of bugs have been squashed and several new features have been implemented.  &lt;br /&gt;
&lt;br /&gt;
Please review the [[webCoRE todo]] list for a loose road map.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
{{:Glossary}}&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the steps below.  &lt;br /&gt;
&lt;br /&gt;
Please be sure to read through all the instructions.  If you are still getting stuck then check the troubleshooting sections.  Should you still have problems then please feel free to ask for some help on the SmartThings Forums.  Be sure to find the latest webCoRE help post.&lt;br /&gt;
&lt;br /&gt;
=Installing webCoRE=&lt;br /&gt;
These instructions will guide you through installing webCoRE via GitHub integration or manually all the way to adding devices and authorizing your browser for use.  Be sure to follow all the steps as proper order is crucial when installing for the first time.&lt;br /&gt;
&lt;br /&gt;
==GitHub Installation (preferred method)==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;y_ElUwmmI6Y&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# If you are in the UK/EU, click this link [https://graph-eu01-euwest1.api.smartthings.com/githubAuth/step1 link] and follow the on-screen instructions to activate GitHub integration for your IDE shard.&lt;br /&gt;
# Login to the [http://ide.smartthings.com SmartThings IDE (US)] or [http://graph-eu01-euwest1.api.smartthings.com SmartThings IDE (EU/UK)].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''Settings''' button at the top of the page.&lt;br /&gt;
#:[[File:Settings.jpg]]&lt;br /&gt;
# Click the '''Add new repository''' link at the bottom of the pop up.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;ady624&amp;lt;/code&amp;gt; in the '''Owner''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;webCoRE&amp;lt;/code&amp;gt; in the '''Name''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; in the '''Branch''' column.&lt;br /&gt;
# Click '''Save''' (do not hit the Enter key, it will exit the form without saving).&lt;br /&gt;
#:[[File:Githubrepo.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCore.groovy&amp;quot; from the '''New (only in GitHub)''' box. {{Warning |Do not update all at once}}&lt;br /&gt;
#:[[File:Githubinstall_webcoreonly.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
# Click again on '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCoRE Piston.groovy&amp;quot;, &amp;quot;webCoRE Storage.groovy&amp;quot;and &amp;quot;webCoRE Dashboard.groovy&amp;quot; from the '''New (only in GitHub)''' box.&lt;br /&gt;
#:[[File:Githubinstall_allchecked.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
&lt;br /&gt;
==Manual Install==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Login to the [http://developer.smartthings.com SmartThings web UI].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy webCore.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save'''.&lt;br /&gt;
# Click '''Publish'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Piston Smart App  ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy webCoRE-piston.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Storage Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy webCoRE-storage.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Dashboard Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy webCoRE-dashboard.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling OAuth for webCoRE==&lt;br /&gt;
# Navigate to the '''My SmartApps''' page if you are not already there.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the edit button to the left of '''ady624 : webCoRE''', it looks like a rounded square with a pencil in it.&lt;br /&gt;
#:[[File:Editwebcore.jpg]]&lt;br /&gt;
# Scroll down and click on '''OAuth'''.&lt;br /&gt;
# Click the '''Enable OAuth in SmartApp''' button.&lt;br /&gt;
# Click the '''Update''' button at the bottom of the page.&lt;br /&gt;
#:[[File:Oauth.jpg|frameless|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing webCoRE==&lt;br /&gt;
# Open the SmartThings app on your mobile device.&lt;br /&gt;
# Tap the '''Marketplace''' icon at the bottom of the screen. If you are in a Room or Device within the app you will need to go back to '''My Home'''.&lt;br /&gt;
# Tap the '''SmartApps''' header at the top of the page.&lt;br /&gt;
# Scroll down and tap '''My Apps'''.&lt;br /&gt;
# Scroll down until you find '''webCoRE''' and tap it. Do not tap '''webCoRE Piston'''. If you can't find '''webCore''' you likely skipped some steps above.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Here you can change the name from '''webCoRE''' to anything you desire then tap '''Next'''.  (''Recommend leaving it unless you are working with multiple instances.'')&lt;br /&gt;
# Choose a password and expiration length then tap '''Next'''.&lt;br /&gt;
# Scroll through the list and select all of the devices you want webCoRE to have access to. If you do not do this, you will not be able to use those devices in webCoRE. This must also be done again when adding new devices to your SmartThings Account.  webCoRE will not automatically import them.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Tap '''Done'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opening the new dashboard from your phone==&lt;br /&gt;
# From within the SmartThings app, tap the Automations icon at the bottom of the screen and select the SmartApps section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically webCoRE, unless you edited the name during the installation process.&lt;br /&gt;
# Tap Dashboard.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using webCoRE from another browser==&lt;br /&gt;
You cannot bookmark the URL you launched from the SmartThing app. In order to use webCoRE on another device you must follow these instructions.&lt;br /&gt;
&lt;br /&gt;
# From within the SmartThings app, tap the '''Automations''' icon at the bottom of the screen and select the '''SmartApps''' section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically '''webCoRE''', unless you edited the name during the installation process.&lt;br /&gt;
# Tap '''Register a browser''', a page will appear providing you with a registration code. The code expires in 3 minutes and can only be  used once.&lt;br /&gt;
#: [[File:Register-browser.png|Register a Browser]] [[File:Register-browser-code.png|Register a Browser]]&lt;br /&gt;
# On your other device, open the browser and visit &amp;lt;i&amp;gt;[https://webcore.co/re webcore.co/re]&amp;lt;/i&amp;gt;&lt;br /&gt;
# Enter the code and click '''Register'''.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Updating webCoRE =&lt;br /&gt;
[[file:UpdateAlert.png]]&amp;lt;BR&amp;gt;&lt;br /&gt;
When you see the alert that there is a new version available or that your smartapps are not the same version then you will need to update the webCoRE code.  This has a few benefits besides being on the latest and greatest version. It is best to keep webCoRE up to date because bugs are constantly getting squashed and new features added with each version.  This will make troubleshooting easier when you are running into issues and seeking help. Lastly SmartThings keeps the most used SmartApps in their cache which means quicker response times on your pistons. &lt;br /&gt;
&lt;br /&gt;
For those of you with gitHub integration this is a quick and painless process.  If you manually installed then it is a similar process as before.  Either way updating only takes a few minutes of your time. &lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
#Log into the SmartThings IDE&lt;br /&gt;
#Select My SmartApps&lt;br /&gt;
#*You will see all the webCoRE SmartApps listed in a purple color&lt;br /&gt;
#Click update from Repo&lt;br /&gt;
#Select webCoRE(Master)&lt;br /&gt;
#*In the Obsolete column you will see the 4 webCoRE SmartApps&lt;br /&gt;
#Select all 4 checkboxes&lt;br /&gt;
#Click the publish checkbox&lt;br /&gt;
#Click Execute Update&lt;br /&gt;
&lt;br /&gt;
== Manual Update == &lt;br /&gt;
This requires a little bit more work than gitHub integration but still will only take a few moments.  Visit the links below and copy and paste the new raw code over the obsolete code then publish and execute update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Link to Raw gitHub code&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Dashboard&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Piston&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Storage&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update Complete ==&lt;br /&gt;
That is all you have to do.  Your webCoRE instance's are now up to date.  However if you have multiple locations(hubs) then you will need to do this for each location(hub).&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
Here are some common troubleshooting things to try if you are having issues with the following categories&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
[[File:500error.png|frameless|400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you receive this error it may be because you installed and published both &amp;quot;webCore.groovy&amp;quot; and other SmartApps at the same time. Please do them in order per the instructions. Be sure to install/publish &amp;quot;webCore.groovy&amp;quot; first then the others after (See steps 11-16).  You can do the other SmartApps at the same time after &amp;quot;webCore.groovy&amp;quot; has been installed and published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Endless Spinning Square&lt;br /&gt;
#Open The SmartThings App&lt;br /&gt;
#Go into settings&lt;br /&gt;
#Click the map location&lt;br /&gt;
#Move the pin on the map around&lt;br /&gt;
#Position on your actual location&lt;br /&gt;
#save actual location&lt;br /&gt;
#Save the settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating your first piston =&lt;br /&gt;
{{:Creating your first piston}}&lt;br /&gt;
&lt;br /&gt;
=Sample Pistons=&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
= Understanding the basics =&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE child SmartApp (''webCoRE Piston'') ==&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE parent SmartApp (''webCoRE'') ==&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
== The [[Dashboard|dashboard]] ==&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
=Anatomy of a webCoRE Piston=&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
==The ''settings'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
==The ''define'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable_data_types|Variable Data Types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
==The ''execute'' section==&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
=Misc Pages=&lt;br /&gt;
==[[webCoRE Logging]]==&lt;br /&gt;
==[[Functions]]==&lt;br /&gt;
==[[Expressions]]==&lt;br /&gt;
==[[Case_Traversal_Policy|Case Traversal Policy]]==&lt;br /&gt;
==[[Execution_Method|Execution Method]]==&lt;br /&gt;
==[[Piston_State|Piston State]]==&lt;br /&gt;
==[[Task_Scheduling_Policy|Task Scheduling Policy]]==&lt;br /&gt;
==[[Weather | Weather]]==&lt;br /&gt;
==[[NFL | NFL API]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=669</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=669"/>
				<updated>2017-11-23T19:34:33Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: /* GitHub Installation (preferred method) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;youtube&amp;gt;jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: both; margin-right: 2em; margin-top: 1em; margin-bottom: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017.  &lt;br /&gt;
&lt;br /&gt;
Currently webCoRE is in the Second Beta milestone as of June 7th, 2017.  Lots of bugs have been squashed and several new features have been implemented.  &lt;br /&gt;
&lt;br /&gt;
Please review the [[webCoRE todo]] list for a loose road map.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
{{:Glossary}}&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the steps below.  &lt;br /&gt;
&lt;br /&gt;
Please be sure to read through all the instructions.  If you are still getting stuck then check the troubleshooting sections.  Should you still have problems then please feel free to ask for some help on the SmartThings Forums.  Be sure to find the latest webCoRE help post.&lt;br /&gt;
&lt;br /&gt;
=Installing webCoRE=&lt;br /&gt;
These instructions will guide you through installing webCoRE via GitHub integration or manually all the way to adding devices and authorizing your browser for use.  Be sure to follow all the steps as proper order is crucial when installing for the first time.&lt;br /&gt;
&lt;br /&gt;
==GitHub Installation (preferred method)==&lt;br /&gt;
# If you are in the UK/EU, click this link [https://graph-eu01-euwest1.api.smartthings.com/githubAuth/step1 link] and follow the on-screen instructions to activate GitHub integration for your IDE shard.&lt;br /&gt;
# Login to the [http://ide.smartthings.com SmartThings IDE (US)] or [http://graph-eu01-euwest1.api.smartthings.com SmartThings IDE (EU/UK)].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''Settings''' button at the top of the page.&lt;br /&gt;
#:[[File:Settings.jpg]]&lt;br /&gt;
# Click the '''Add new repository''' link at the bottom of the pop up.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;ady624&amp;lt;/code&amp;gt; in the '''Owner''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;webCoRE&amp;lt;/code&amp;gt; in the '''Name''' column.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; in the '''Branch''' column.&lt;br /&gt;
# Click '''Save''' (do not hit the Enter key, it will exit the form without saving).&lt;br /&gt;
#:[[File:Githubrepo.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCore.groovy&amp;quot; from the '''New (only in GitHub)''' box. {{Warning |Do not update all at once}}&lt;br /&gt;
#:[[File:Githubinstall_webcoreonly.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
# Click again on '''Update From Repo'''.&lt;br /&gt;
# Select '''webCoRE (master)''' from the list.&lt;br /&gt;
#:[[File:Update.jpg]]&lt;br /&gt;
# Check &amp;quot;webCoRE Piston.groovy&amp;quot;, &amp;quot;webCoRE Storage.groovy&amp;quot;and &amp;quot;webCoRE Dashboard.groovy&amp;quot; from the '''New (only in GitHub)''' box.&lt;br /&gt;
#:[[File:Githubinstall_allchecked.png]]&lt;br /&gt;
# Check the '''Publish''' checkbox at the bottom of the pop up.&lt;br /&gt;
#:[[File:Ide_update.png]]&lt;br /&gt;
# Click the '''Execute Update''' button.&lt;br /&gt;
#:[[File:Ide_update-new.png]]&lt;br /&gt;
&lt;br /&gt;
==Manual Install==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Login to the [http://developer.smartthings.com SmartThings web UI].&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy webCore.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save'''.&lt;br /&gt;
# Click '''Publish'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Piston Smart App  ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy webCoRE-piston.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Storage Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy webCoRE-storage.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== webCoRE Dashboard Smart App ===&lt;br /&gt;
&lt;br /&gt;
# Click on '''My SmartApps'''.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the '''New SmartApp''' button.&lt;br /&gt;
#:[[File:Newsmartapp.jpg]]&lt;br /&gt;
# Select the '''From Code''' tab.&lt;br /&gt;
#:[[File:Fromcode.jpg]]&lt;br /&gt;
# Copy all of the code from the [https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy webCoRE-dashboard.groovy] file into the box.&lt;br /&gt;
# Click '''Create'''.&lt;br /&gt;
#:[[File:Createcode.jpg|frameless|400px]]&lt;br /&gt;
# Click '''Save''' and wait for the loading circle to disappear.&lt;br /&gt;
# Click '''Publish''' and choose '''For Me'''.&lt;br /&gt;
#:[[File:Savepublish.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling OAuth for webCoRE==&lt;br /&gt;
# Navigate to the '''My SmartApps''' page if you are not already there.&lt;br /&gt;
#:[[File:Mysmartapps.jpg]]&lt;br /&gt;
# Click the edit button to the left of '''ady624 : webCoRE''', it looks like a rounded square with a pencil in it.&lt;br /&gt;
#:[[File:Editwebcore.jpg]]&lt;br /&gt;
# Scroll down and click on '''OAuth'''.&lt;br /&gt;
# Click the '''Enable OAuth in SmartApp''' button.&lt;br /&gt;
# Click the '''Update''' button at the bottom of the page.&lt;br /&gt;
#:[[File:Oauth.jpg|frameless|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing webCoRE==&lt;br /&gt;
# Open the SmartThings app on your mobile device.&lt;br /&gt;
# Tap the '''Marketplace''' icon at the bottom of the screen. If you are in a Room or Device within the app you will need to go back to '''My Home'''.&lt;br /&gt;
# Tap the '''SmartApps''' header at the top of the page.&lt;br /&gt;
# Scroll down and tap '''My Apps'''.&lt;br /&gt;
# Scroll down until you find '''webCoRE''' and tap it. Do not tap '''webCoRE Piston'''. If you can't find '''webCore''' you likely skipped some steps above.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Here you can change the name from '''webCoRE''' to anything you desire then tap '''Next'''.  (''Recommend leaving it unless you are working with multiple instances.'')&lt;br /&gt;
# Choose a password and expiration length then tap '''Next'''.&lt;br /&gt;
# Scroll through the list and select all of the devices you want webCoRE to have access to. If you do not do this, you will not be able to use those devices in webCoRE. This must also be done again when adding new devices to your SmartThings Account.  webCoRE will not automatically import them.&lt;br /&gt;
# Tap '''Next'''.&lt;br /&gt;
# Tap '''Done'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Opening the new dashboard from your phone==&lt;br /&gt;
# From within the SmartThings app, tap the Automations icon at the bottom of the screen and select the SmartApps section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically webCoRE, unless you edited the name during the installation process.&lt;br /&gt;
# Tap Dashboard.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using webCoRE from another browser==&lt;br /&gt;
You cannot bookmark the URL you launched from the SmartThing app. In order to use webCoRE on another device you must follow these instructions.&lt;br /&gt;
&lt;br /&gt;
# From within the SmartThings app, tap the '''Automations''' icon at the bottom of the screen and select the '''SmartApps''' section.&lt;br /&gt;
# Scroll down and tap the name of the webCoRE instance you are trying to access. This is typically '''webCoRE''', unless you edited the name during the installation process.&lt;br /&gt;
# Tap '''Register a browser''', a page will appear providing you with a registration code. The code expires in 3 minutes and can only be  used once.&lt;br /&gt;
#: [[File:Register-browser.png|Register a Browser]] [[File:Register-browser-code.png|Register a Browser]]&lt;br /&gt;
# On your other device, open the browser and visit &amp;lt;i&amp;gt;[https://webcore.co/re webcore.co/re]&amp;lt;/i&amp;gt;&lt;br /&gt;
# Enter the code and click '''Register'''.&lt;br /&gt;
# You will be prompted to enter the security password, the same password you created when you installed webCoRE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Updating webCoRE =&lt;br /&gt;
[[file:UpdateAlert.png]]&amp;lt;BR&amp;gt;&lt;br /&gt;
When you see the alert that there is a new version available or that your smartapps are not the same version then you will need to update the webCoRE code.  This has a few benefits besides being on the latest and greatest version. It is best to keep webCoRE up to date because bugs are constantly getting squashed and new features added with each version.  This will make troubleshooting easier when you are running into issues and seeking help. Lastly SmartThings keeps the most used SmartApps in their cache which means quicker response times on your pistons. &lt;br /&gt;
&lt;br /&gt;
For those of you with gitHub integration this is a quick and painless process.  If you manually installed then it is a similar process as before.  Either way updating only takes a few minutes of your time. &lt;br /&gt;
&lt;br /&gt;
== GitHub ==&lt;br /&gt;
#Log into the SmartThings IDE&lt;br /&gt;
#Select My SmartApps&lt;br /&gt;
#*You will see all the webCoRE SmartApps listed in a purple color&lt;br /&gt;
#Click update from Repo&lt;br /&gt;
#Select webCoRE(Master)&lt;br /&gt;
#*In the Obsolete column you will see the 4 webCoRE SmartApps&lt;br /&gt;
#Select all 4 checkboxes&lt;br /&gt;
#Click the publish checkbox&lt;br /&gt;
#Click Execute Update&lt;br /&gt;
&lt;br /&gt;
== Manual Update == &lt;br /&gt;
This requires a little bit more work than gitHub integration but still will only take a few moments.  Visit the links below and copy and paste the new raw code over the obsolete code then publish and execute update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Link to Raw gitHub code&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore.src/webcore.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Dashboard&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-dashboard.src/webcore-dashboard.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Piston&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-piston.src/webcore-piston.groovy&lt;br /&gt;
|-&lt;br /&gt;
! webCoRE Storage&lt;br /&gt;
| https://raw.githubusercontent.com/ady624/webCoRE/master/smartapps/ady624/webcore-storage.src/webcore-storage.groovy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update Complete ==&lt;br /&gt;
That is all you have to do.  Your webCoRE instance's are now up to date.  However if you have multiple locations(hubs) then you will need to do this for each location(hub).&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
Here are some common troubleshooting things to try if you are having issues with the following categories&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
[[File:500error.png|frameless|400px]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you receive this error it may be because you installed and published both &amp;quot;webCore.groovy&amp;quot; and other SmartApps at the same time. Please do them in order per the instructions. Be sure to install/publish &amp;quot;webCore.groovy&amp;quot; first then the others after (See steps 11-16).  You can do the other SmartApps at the same time after &amp;quot;webCore.groovy&amp;quot; has been installed and published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Endless Spinning Square&lt;br /&gt;
#Open The SmartThings App&lt;br /&gt;
#Go into settings&lt;br /&gt;
#Click the map location&lt;br /&gt;
#Move the pin on the map around&lt;br /&gt;
#Position on your actual location&lt;br /&gt;
#save actual location&lt;br /&gt;
#Save the settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating your first piston =&lt;br /&gt;
{{:Creating your first piston}}&lt;br /&gt;
&lt;br /&gt;
=Sample Pistons=&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
= Understanding the basics =&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE child SmartApp (''webCoRE Piston'') ==&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
== The webCoRE parent SmartApp (''webCoRE'') ==&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
== The [[Dashboard|dashboard]] ==&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
=Anatomy of a webCoRE Piston=&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
==The ''settings'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
==The ''define'' section==&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable_data_types|Variable Data Types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
==The ''execute'' section==&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png|frameless|500px]]&lt;br /&gt;
&lt;br /&gt;
=Misc Pages=&lt;br /&gt;
==[[webCoRE Logging]]==&lt;br /&gt;
==[[Functions]]==&lt;br /&gt;
==[[Expressions]]==&lt;br /&gt;
==[[Case_Traversal_Policy|Case Traversal Policy]]==&lt;br /&gt;
==[[Execution_Method|Execution Method]]==&lt;br /&gt;
==[[Piston_State|Piston State]]==&lt;br /&gt;
==[[Task_Scheduling_Policy|Task Scheduling Policy]]==&lt;br /&gt;
==[[Weather | Weather]]==&lt;br /&gt;
==[[NFL | NFL API]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=462</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=462"/>
				<updated>2017-05-25T20:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Way to identify devices that are selected but not used&lt;br /&gt;
# Import from Red Piston Picture&lt;br /&gt;
# Backup/Restore Pistons to/from local storage&lt;br /&gt;
# Remove ''(only while )'' when all Mode restrictions are deselected.&lt;br /&gt;
# That custom function feature you had mentioned in the private thread (@c1arkbar if you cant remember)&lt;br /&gt;
# Reference dynamic devices by names. getDevice(name) or make [variable:attribute] search for a device automatically, if variable is not a device variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Power Cut Detection&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Turn X switch to Random State&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Turn X switch to {variable} State&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Command optimizations&amp;lt;/del&amp;gt; (5/22/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=447</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=447"/>
				<updated>2017-05-22T21:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Way to identify devices that are selected but not used&lt;br /&gt;
# Import from Red Piston Picture&lt;br /&gt;
# Backup/Restore Pistons to/from local storage&lt;br /&gt;
# Remove ''(only while )'' when all Mode restrictions are deselected.&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Power Cut Detection&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Turn X switch to Random State&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Turn X switch to {variable} State&amp;lt;/del&amp;gt; (5/8/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Command optimizations&amp;lt;/del&amp;gt; (5/22/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=444</id>
		<title>webCoRE</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=webCoRE&amp;diff=444"/>
				<updated>2017-05-17T20:37:50Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== General ==&lt;br /&gt;
The ''web Community's own Rule Engine'' (or for short, webCoRE) is a general rule engine for SmartThings. It works by allowing users to create scripts that are interpreted and executed by the SmartThings SmartApp, allowing for complex decisions. webCoRE is currently a work in progress. webCoRE reached the first Beta milestone on April 29, 2017 (version v0.1.097.20170429) Please review the [[webCoRE todo]] list.&lt;br /&gt;
&lt;br /&gt;
== Video Introduction ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;https://youtu.be/jgXA_rv2-_8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
A few steps need to be completed before you can use webCoRE. First, webCoRE needs to be installed in your SmartThings account, then automations need to be configured. These are called [[Piston|pistons]] and will be detailed later. So let's start by installing webCoRE, please follow the 5 steps below.&lt;br /&gt;
&lt;br /&gt;
== Installing webCoRE ==&lt;br /&gt;
You must complete all of these steps.&lt;br /&gt;
&lt;br /&gt;
# [[GitHub Install]] or [[Manual Install]] of webCoRE source code into the SmartThings Cloud&lt;br /&gt;
# [[Enable webCoRE OAuth]] in the SmartThings cloud&lt;br /&gt;
# [[Install webCoRE]] in the SmartThings mobile app&lt;br /&gt;
# [[Enabling webCoRE dashboard]]&lt;br /&gt;
# [[Enable webCoRE on Another Device]]&lt;br /&gt;
&lt;br /&gt;
== Understanding the basics ==&lt;br /&gt;
webCoRE is comprised of the three main components listed below.&lt;br /&gt;
&lt;br /&gt;
=== The webCoRE child SmartApp (''webCoRE Piston'') ===&lt;br /&gt;
The webCoRE child SmartApp is also known as a [[Piston|piston]]. It is responsible for executing the automation script that the user creates and does the heavy lifting in the whole webCoRE ecosystem. It is directly managed by the webCoRE parent SmartApp, which can create, maintain, and delete a Piston.&lt;br /&gt;
&lt;br /&gt;
=== The webCoRE parent SmartApp (''webCoRE'') ===&lt;br /&gt;
The wabCoRE parent SmartApp is the component responsible for managing the child SmartApp instances and their relationship with the Dashboard. It is the middle man that allows adding new Pistons, maintaining them, or deleting them. It is also responsible with the security of the whole ecosystem, allowing password secured access from the Dashboard.&lt;br /&gt;
&lt;br /&gt;
=== The [[Dashboard|dashboard]] ===&lt;br /&gt;
The Dashboard is an [https://en.wikipedia.org/wiki/HTML HTML] interface for webCoRE that allows users to manage their webCoRE installation. It is the central hub to controlling webCoRE, allowing the user to create, modify, test, and delete Pistons.&lt;br /&gt;
&lt;br /&gt;
==Anatomy of a webCoRE Piston==&lt;br /&gt;
::''Main article [[Piston]]''&lt;br /&gt;
A piston is a script that contains a collection of elements, arranged so that the logic and flow of the piston perform tasks in a desired sequence. It is broken down into several sections, each having its own important role.&lt;br /&gt;
&lt;br /&gt;
//todo: most details below need to be moved into the main article&lt;br /&gt;
&lt;br /&gt;
===The ''settings'' section===&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show piston settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
These settings allows configuration of how certain aspects of the piston function. &lt;br /&gt;
&lt;br /&gt;
[[file:pistonsettings.png]]&lt;br /&gt;
&lt;br /&gt;
*'''Name''' - Change the name of a piston.&lt;br /&gt;
*'''Description''' - Give a description of what the piston does.&lt;br /&gt;
*'''Automatic piston state''' - Change whether the piston handles it state or make it manual and you can control the piston's state.&lt;br /&gt;
*'''Piston execution parallelism''' - //todo&lt;br /&gt;
*'''Condition traversal optimizations''' - //todo&lt;br /&gt;
*'''Event subscriptions''' - Allow event subscriptions or turn them off if you would like to make the piston a follow up style piston.  If you disable this then you must have some other means for the piston to be fired.&lt;br /&gt;
*'''Command execution delay''' - A delay in milliseconds for commands to be executed piston wide.&lt;br /&gt;
&lt;br /&gt;
===The ''define'' section===&lt;br /&gt;
This menu is accessed from the piston editor.  In the upper right hand corner select options and then enable &amp;lt;code&amp;gt;Show variables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
A very powerful feature of webCoRE is the ability to use [[Variable|variables]]. Think of variables as temporary pockets where you can store information and are able to later retrieve and use this information for any purpose. This information can be used either during the current piston run, or at a later time, when another event occurs.&lt;br /&gt;
&lt;br /&gt;
[[file:pistondefine.png]]&lt;br /&gt;
&lt;br /&gt;
*'''Type''' - You can select from the different [[Variable Data Types|Variable_data_types]] for you variable.&lt;br /&gt;
*'''Name''' - This is the empty box next to the type.  Enter a name for your variable.&lt;br /&gt;
*'''Initial value''' - This is defaulted to &amp;lt;code&amp;gt;Nothing selected&amp;lt;/code&amp;gt;.  If you decide to give it an initial value then that value will be used at each piston run regardless of what is stored in later piston runs.&lt;br /&gt;
*'''Description''' - Give a description of what the variable is used for.&lt;br /&gt;
&lt;br /&gt;
===The ''execute'' section===&lt;br /&gt;
This section describes the piston's logic flow. This is the starting point of most executions. Whenever a device event happens, the piston starts its execution here.  To get started click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:executesimple.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are you 3 basic building blocks with their description listed below them.  There are several more options to choose from aside from these three. In order to gain access to these you will again have to visit that trusty options menu in the top right hand corner and select &amp;lt;code&amp;gt;Show advanced statments&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:pistonoptions.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you do this and you click on &amp;lt;code&amp;gt;Add a new statement&amp;lt;/code&amp;gt; you will now have access to all the available statement options.&lt;br /&gt;
&lt;br /&gt;
[[file:executeadvanced.png]]&lt;br /&gt;
&lt;br /&gt;
==Other Details==&lt;br /&gt;
# [[webCore Logging]]&lt;br /&gt;
# [[Functions]]&lt;br /&gt;
# [[Expressions]]&lt;br /&gt;
&lt;br /&gt;
== Creating your first piston ==&lt;br /&gt;
&lt;br /&gt;
Once you finished the installation steps above, let's go ahead and create the first piston, the famous [[Hello World!|Hello World]].&lt;br /&gt;
&lt;br /&gt;
==Sample Pistons==&lt;br /&gt;
This section has some user contributed sample pistons.  You can import any of these pistons using the import code displayed at the top of the piston.&lt;br /&gt;
# [[Samples]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo keywords=&amp;quot;webCoRE,dashboard,smart home,automation,SmartThings,rule engine,zigbee,z-wave,smart device&amp;quot; description=&amp;quot;The official wiki for webCoRE, the Web-enabled Community's own Rule Engine SmartApp&amp;quot;&amp;gt;&amp;lt;/seo&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=343</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=343"/>
				<updated>2017-05-08T13:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Turn X switch to Random State&lt;br /&gt;
# Turn X switch to {variable} State &lt;br /&gt;
# Command optimizations&lt;br /&gt;
# Power Cut Detection&lt;br /&gt;
# Way to identify devices that are selected but not used&lt;br /&gt;
# Import from Red Piston Picture&lt;br /&gt;
# Backup/Restore Pistons to/from local storage&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=340</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=340"/>
				<updated>2017-05-07T19:48:13Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Turn X to Random Switch State&lt;br /&gt;
# Command optimizations&lt;br /&gt;
# Power Cut Detection&lt;br /&gt;
# Way to identify devices that are selected but not used&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=339</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=339"/>
				<updated>2017-05-07T14:55:59Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Turn X to Random Switch State&lt;br /&gt;
# Command optimizations&lt;br /&gt;
# Power Cut Detection&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=327</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=327"/>
				<updated>2017-05-07T10:56:40Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# $randomSwitch&lt;br /&gt;
# Command optimizations&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration(value, friendly, granularity, showAdverbs)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;formatDuration( )&amp;lt;/del&amp;gt; (5/3/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=326</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=326"/>
				<updated>2017-05-07T10:45:17Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Function for formatting time&lt;br /&gt;
# $randomSwitch&lt;br /&gt;
# Command optimizations&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=222</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=222"/>
				<updated>2017-05-03T10:24:46Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Function for formatting time&lt;br /&gt;
# $randomSwitch&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=221</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=221"/>
				<updated>2017-05-02T21:03:02Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
# Function for formatting time&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=220</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=220"/>
				<updated>2017-05-02T20:59:48Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / Programmatic Switch Support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	<entry>
		<id>https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=219</id>
		<title>WebCoRE todo</title>
		<link rel="alternate" type="text/html" href="https://wiki.webcore.co/index.php?title=WebCoRE_todo&amp;diff=219"/>
				<updated>2017-05-02T20:37:36Z</updated>
		
		<summary type="html">&lt;p&gt;Robin Winbourne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|Just because a feature is on this list, doesn't mean that [https://community.smartthings.com/users/ady624/summary ady624] will implement it.}}&lt;br /&gt;
{{warning|This list may not be complete. If you find something that is not on the list that has not been implemented don't complain, add it!}}&lt;br /&gt;
&lt;br /&gt;
The following is a list of missing features or known issues (in a somewhat priority order):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Virtual tasks - add the lot (in progress)&lt;br /&gt;
# Superglobal variables publication to other locations&lt;br /&gt;
# AskAlexa Message Queue integration&lt;br /&gt;
# Twilio integration&lt;br /&gt;
# NFL integration&lt;br /&gt;
# Physical / grammatical support&lt;br /&gt;
# Lock code support&lt;br /&gt;
# Prevent already scheduled tasks from executing during restrictions&lt;br /&gt;
&lt;br /&gt;
Resolved (or believed to be resolved) issues:&lt;br /&gt;
# &amp;lt;del&amp;gt;Smart Home Monitor&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Location Mode&amp;lt;/del&amp;gt; (3/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time Triggers (every x minutes/hours/days/etc do)&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Color support&amp;lt;/del&amp;gt; (4/12/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Cancellation Policy|TCP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;[[Task Execution Policy|TEP]]&amp;lt;/del&amp;gt; (4/13/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute other pistons&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Wait until &amp;amp;lt;time&amp;amp;gt;&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Execute Routines&amp;lt;/del&amp;gt; (4/15/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Multiple choice conditions (any of, not any of)&amp;lt;/del&amp;gt; (4/16/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Web service calls with location (needs clarification)&amp;lt;/del&amp;gt; (4/17/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Task mode restrictions&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time conditions/restrictions (time is before/between/after)&amp;lt;/del&amp;gt; (4/18/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Date conditions/restrictions (date is before/between/after)&amp;lt;/del&amp;gt; (4/19/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed conditions (changed, was / were)&amp;lt;/del&amp;gt; (4/20/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Masking phone numbers while sharing pistons&amp;lt;/del&amp;gt; (4/21/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Superglobal variables&amp;lt;/del&amp;gt; (4/22/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Global/superglobal variables triggers on change&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers (stays/stay)&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Time condition offsets&amp;lt;/del&amp;gt; (4/23/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Use of variables inside conditions and restrictions (same as they can be used in actions)&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Store condition matching/non-matching device list to variable&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Subscribe to Routines Events&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;AskAlexa integration&amp;lt;/del&amp;gt; (4/24/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Custom commands with parameters&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Copy&amp;amp;Paste support inside piston editor&amp;lt;/del&amp;gt; (4/25/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Contact support for notifications&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;Timed triggers with multiple devices and Any aggregation&amp;lt;/del&amp;gt; (4/26/2017)&lt;br /&gt;
# &amp;lt;del&amp;gt;IFTTT event arguments parsing&amp;lt;/del&amp;gt; (4/26/2017)&lt;/div&gt;</summary>
		<author><name>Robin Winbourne</name></author>	</entry>

	</feed>