Progress report: For whomever wants to test condition evaluation, find the code at https://github.com/ady624/HomeCloudHub/blob/master/smartapps/ady624/smartthingers.src/smartthingers.groovy
No actions can be added yet, but conditions can be built with or without triggers. All conditions should work, and simple triggers should work too. Simple means “changes …”, “drops…”, “raises…”, “enters…”, “exits…”. Timed triggers do not work as of now (no trigger of the “…stays…” form), so please don’t use those yet.
Triggers are shown with a full dot, regular conditions (non-triggers) are shown with an empty dot.
if you DO NOT use any triggers, any change into any of the devices involved in the condition will lead to an evaluation of the condition. If you DO use triggers, only those devices involved in the triggers are monitored and only their changes lead to evaluations.
The “was” conditions refer to the immediately previous state/value. If you have a single condition “if door was open for at least 3 minutes” and the door closes, the evaluation will run (because we have no triggers) and will return true (provided the door was indeed open for at least three minutes before it got closed). Makes more sense when paired with triggers and the door state doesn’t change, but you’ll get it.
Let me know if things should be changed. Anything. I have done minimal testing on this, I haven’t tested the advanced option in a group (negate group) - but it should work. Evaluation seems to take around 200ms for a low number of conditions. Haven’t gone berserk on conditions yet. The “was” conditions are much heavier on resources since they rely on lists of events to figure out if state/value changed and if it did within the comparison conditions.
Last but not least, every evaluation ends in a sendPush which will put the condition, event and result in the Notifications page in the ST app. Live logging gives a bit more info, including time it took to process the event.