Simplerulebuilder - now private

Having less-than-equal-to and greater-than-equal-to would be handy, please. Love the app, thanks.

Hi, @JoeC. I’m curious of the ETA on enabling delay for the modes and phrases? Or is there a platform restriction? I have a scenario that needs the delay on the phrases and modes for it to work, but as of today there is no delay, and the phrases and modes execute instantly. Thanks for this tool!

Do you mean that you have a mode change as an action with a delay and the delay is not happening? Or do you mean that you’re using a phrase or mode change as a trigger and want a delay?

The former: I have a an action to execute a phrase with a delay (whether 5 seconds or 300 seconds), and it is not happening. Same issue with an action to change a mode with a delay. I’ve tested with a process of elimination, and indeed a rule with an action of either a mode change, as well as separate rule to execute a separate action phrase, both invoke instantly without a delay.

My saved rule’s action currently says this (any trigger; with no conditions):
do these things
Actions
[Wait 300 seconds THEN] [execute Hello Home Phrase] [I’m Home]

I’m curious if you’re able to repro this alleged issue? Thanks for the help.

I’m out of town at a conference this weekend, I’ll take a look when I get back. Sorry for the issue!

So
 Obviously the major “con” to this architecture is that users lose the benefits of Hub V2’s ability to locally cache and execute SmartApps.

The “extra” trip to your server isn’t a super big deal with Hub V1, since we have to make a trip to the SmartThings cloud anyhow. But Hub V2 eliminates that second latency for the majority of SmartApps (i.e., at least the SmartApps that do simple things like “If Door opens, turn on Light”) 
 but that isn’t an option for Simple Rule Builder executions, unfortunately.

Latency is only one issue: The other being that the Simple Rules Builder executions are completely dependent on the internet and your server, and thus also lose Hub V2’s “offline” resiliency. :cry:

I wonder if @obycode’s Smart Rules Builder has the same rule execution architecture!!! (And, thus, the same drawbacks
).

No, SmartRules run just like any other SmartApp. There are no other servers involved. Theoretically, rules using only local devices should work, though I don’t know enough of the details yet to know for sure.

2 Likes

Excellent!. Clever coding, given the limitations of the SmartApp “sandbox”. Thanks for the response.

1 Like

So
 Obviously the major “con” to this architecture is that users lose the benefits of Hub V2’s ability to locally cache and execute SmartApps.

Totally agree. We’ll see how it plays out. I’m pretty curious to see how ST’s cloud performance changes when a lot of the load is pushed to v2 hubs. There will always be some latency, but it will be interesting to see if it becomes negligible once things change.

I can only speak for myself, and my own perception might change once v2 is out, but I’m pretty happy with the performance of the rule builder. Sometimes things are basically instant, sometimes there is a second or two delay. I’m good with that right now, but time will tell how that will feel a year from now.

I’d still really like to see SmartThings incorporate something like the simple rule builder into the official platform. @Ben, want to buy a rule engine? :grinning:

3 Likes

This may be a bit of a silly question, but is there any chance you could implement a password reset on the rules engine?

AGREED! This is a must-have in the app. This spares me having to write/modify existing code just to have what I need work well. The all-in-one app having the advanced option for rules would greatly calm the community’s gripe about the app user experience. I’m referring to beloved delays, grouping, unlimited triggers, unlimited conditions, and unlimited actions.
It is a super quick way of virtually writing your own app that anyone can make, not necessarily requiring writing code. Not all users are such geeks eager to create in the IDE, etc. They want it to just work with the tap of a single finger.

Please integrate this directly into the app. We already know it works, and is tried and true. Thanks in advance!

1 Like

Seem to be having issues with rules firing after the minor glitch today. I can manually execute the rule from the website but none are firing themselves. Ideas?

Edit: resolved now.

Any chance of getting the ability to set the Smart Home Monitor status via rules? Specifically something like:

If front door is unlocked, set alarm to disarmed?

@raggedrebel92 , yes. If I may answer: simply have Rule Builder change to the particular mode that you have specified within Smart Alarm to be in the disarmed state. I believe Smart Alarm can only be disarmed via a mode change.

Not Smart Alarm - Smart Home Monitor. It does not function the same way

After some frustration I got it to work.

Created two routines (hello home actions) “lock and arm” and “unlock and disarm” that simply control the SHM states and change modes.

Then the rule is:
When:
Front door lock is unlocked.
Do:
Execute hello home phrase lock and arm.

It works pretty well.

found a slight bug
 my garage door (linear wdx004 I believe) is checked and shows up in device list
 but when adding a rule it does not show up as a selection in actions, ie if I wanted to open or close the door
 etc.

this has to do with the fact that it is actually 1 device but should show up as two devices. one to show status of the door and 1 to open close.

Hi @JoeC
I set up my account but am having trouble making new rules. I get a DB error, pasting it below. Let me know if there’s a way for me to resolve it? I’ve tried deleting my account and creating a new one to no avail. Really excited to start using it once it’s resolved:

Server Error in ‘/’ Application.

Violation of PRIMARY KEY constraint ‘PK_LocationDataOptions’. Cannot insert duplicate key in object ‘dbo.LocationDataOptions’.
The statement has been terminated.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint ‘PK_LocationDataOptions’. Cannot insert duplicate key in object ‘dbo.LocationDataOptions’.
The statement has been terminated.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SqlException (0x80131904): Violation of PRIMARY KEY constraint ‘PK_LocationDataOptions’. Cannot insert duplicate key in object ‘dbo.LocationDataOptions’.
The statement has been terminated.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) +1767866 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) +5352418
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +244
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +1691
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +269
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) +1406
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +177 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) +205
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +160
Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command) in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\Database.cs:443
Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command) in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\Database.cs:714
SmartThingsRuleBuilder.App_Code.Location.saveLocationDataOptionValue(Int32 AccountId, String DataOptionId, String Name, DataOptionTypes Type) +795
SmartThingsRuleBuilder.App_Code.Location.updateLocalLocationData() +3809
SmartThingsRuleBuilder.RuleBuilder.Page_Load(Object sender, EventArgs e) +496
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
SmartThingsRuleBuilder.App_Code.BasePage.OnLoad(EventArgs e) +37
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34249

Is there any chance you have two modes or two routines with the same name?

I had a routine and a mode both named “Away”. I changed the routine name, tried it again, and same error. I’m just looking in the SmartThings app to check for routine and modes, and don’t see any other duplicates.