I'm Back routine didn't execute with presence in the last 10min


#1

1) Give a description of the problem
My I’m back routine did not execute when we returned home today. I know that i have some mistakes like the fact that i am re-running the I’m Back routine in my piston after i am also using it as a way to trigger it, but i don’t expect that to be the problem

2) What is the expected behavior?
The expected result is my alarm system should change and mode should change to home. While the other switches named ‘Home’, ‘Away’, and ‘Night’ are virtual switches that are used by Stringify to keep Stringify in sync with the modes.

3) What is happening/not happening?
Not happening: the alarm did not get removed and the mode has not changed. I don’t follow the logs. I want to have it change when we open the garage door which has a door sensor and IF we arrived in the last 10min (based on our phones) AND IF location was currently away then I want it to change. This did not happen

4) Post a Green Snapshot of the pistonimage

5) Attach any logs (From ST IDE and by turning logging level to Full)
`5/19/2018, 10:33:52 PM +768ms
+0ms ╔Received event [Home].routineExecuted = e56fc914-e6bb-4357-9359-f5a7a0850547 with a delay of 79ms
+176ms ║Duration 9170845ms for is < 600000ms threshold = false
+193ms ║Duration 9170287ms for is < 600000ms threshold = false
+196ms ╚Event processed successfully (196ms)
5/19/2018, 10:33:22 PM +729ms
+1ms ╔Received event [Garage Door].contact = closed with a delay of 588ms
+174ms ║Duration 9140804ms for is < 600000ms threshold = false
+191ms ║Duration 9140246ms for is < 600000ms threshold = false
+195ms ╚Event processed successfully (195ms)
5/19/2018, 10:33:18 PM +970ms
+1ms ╔Received event [Garage Door].contact = open with a delay of 593ms
+155ms ║Duration 9137026ms for is < 600000ms threshold = false
+170ms ║Duration 9136466ms for is < 600000ms threshold = false
+174ms ╚Event processed successfully (174ms)
5/19/2018, 10:33:12 PM +483ms
+1ms ╔Received event [Home].routineExecuted = e56fc914-e6bb-4357-9359-f5a7a0850547 with a delay of 67ms
+469ms ║Duration 9130852ms for is < 600000ms threshold = false
+491ms ║Duration 9130299ms for is < 600000ms threshold = false
+495ms ╚Event processed successfully (495ms)
5/19/2018, 10:33:09 PM +735ms
+1ms ╔Received event [Home].routineExecuted = e56fc914-e6bb-4357-9359-f5a7a0850547 with a delay of 74ms
+241ms ║Duration 9127877ms for is < 600000ms threshold = false
+259ms ║Duration 9127319ms for is < 600000ms threshold = false
+263ms ╚Event processed successfully (263ms)
5/19/2018, 10:32:51 PM +747ms
+0ms ╔Received event [Home].routineExecuted = e56fc914-e6bb-4357-9359-f5a7a0850547 with a delay of 64ms
+307ms ║Duration 9109954ms for is < 600000ms threshold = false
+326ms ║Duration 9109399ms for is < 600000ms threshold = false
+330ms ╚Event processed successfully (330ms)
5/19/2018, 10:32:05 PM +786ms
+1ms ╔Received event [Garage Door].contact = closed with a delay of 605ms
+172ms ║Duration 9063859ms for is < 600000ms threshold = false
+193ms ║Duration 9063305ms for is < 600000ms threshold = false
+197ms ╚Event processed successfully (197ms)
5/19/2018, 10:32:02 PM +93ms
+2ms ╔Received event [Garage Door].contact = open with a delay of 1465ms
+154ms ║Duration 9060148ms for is < 600000ms threshold = false
+175ms ║Duration 9059594ms for is < 600000ms threshold = false
+179ms ╚Event processed successfully (179ms)
5/19/2018, 8:03:34 PM +93ms
+1ms ╔Received event [Garage Door].contact = closed with a delay of 898ms
+171ms ║Duration 152164ms for is < 600000ms threshold = true
+197ms ╚Event processed successfully (197ms)
5/19/2018, 8:03:19 PM +870ms
+2ms ╔Received event [Garage Door].contact = open with a delay of 901ms
+352ms ║Duration 138122ms for is < 600000ms threshold = true
+381ms ╚Event processed successfully (381ms)
5/19/2018, 7:15:32 PM +397ms
+1ms ╔Received event [Garage Door].contact = closed with a delay of 195ms
+329ms ║Duration 8188727ms for is < 600000ms threshold = false
+351ms ║Duration 357322ms for is < 600000ms threshold = true
+361ms ╚Event processed successfully (361ms)
5/19/2018, 7:15:24 PM +23ms
+1ms ╔Received event [Garage Door].contact = open with a delay of 201ms
+158ms ║Duration 8180182ms for is < 600000ms threshold = false
+359ms ║Duration 348956ms for is < 600000ms threshold = true
+369ms ╚Event processed successfully (369ms)
5/19/2018, 7:12:45 PM +380ms
+1ms ╔Received event [Front Door].lock = locked with a delay of 684ms
+199ms ║Duration 8021579ms for is < 600000ms threshold = false
+224ms ║Duration 190178ms for is < 600000ms threshold = true
+234ms ╚Event processed successfully (234ms)
5/19/2018, 7:12:17 PM +783ms
+1ms ╔Received event [Front Door].lock = unlocked with a delay of 656ms
+9899ms ║Piston waited at a semaphore for 9769ms
+9932ms ║Duration 8003716ms for is < 600000ms threshold = false
+9951ms ║Duration 172309ms for is < 600000ms threshold = true
+9960ms ╚Event processed successfully (9959ms)
5/19/2018, 7:12:17 PM +538ms
+2ms ╔Received event [Front Door].lock = unlocked with timeout with a delay of 692ms
+353ms ║Duration 7993891ms for is < 600000ms threshold = false
+375ms ║Duration 162487ms for is < 600000ms threshold = true
+384ms ╚Event processed successfully (384ms)
5/19/2018, 6:53:26 PM +713ms
+1ms ╔Received event [Front Door].lock = locked with a delay of 591ms
+143ms ║Duration 6862856ms for is < 600000ms threshold = false
+162ms ║Duration 6841852ms for is < 600000ms threshold = false
+167ms ╚Event processed successfully (166ms)
5/19/2018, 6:51:24 PM +368ms
+1ms ╔Received event [Front Door].lock = unlocked with a delay of 548ms
+9933ms ║Piston waited at a semaphore for 9810ms
+9964ms ║Duration 6750333ms for is < 600000ms threshold = false
+9988ms ║Duration 6729333ms for is < 600000ms threshold = false
+9992ms ╚Event processed successfully (9991ms)
5/19/2018, 6:51:24 PM +103ms
+1ms ╔Received event [Front Door].lock = unlocked with timeout with a delay of 555ms
+149ms ║Duration 6740253ms for is < 600000ms threshold = false
+174ms ║Duration 6719254ms for is < 600000ms threshold = false
+178ms ╚Event processed successfully (178ms)


#2

OK this is very frustrating. I now changed my piston to execute manually the I’m Back routine but it is not doing all of the actions only some of them. It didn’t change my mode from away to home only sent me a push notification and disarmed my smart home monitor but it also didn’t turn off and turn on the appropriate switches in my flow.

As an FYI i use those switches to tell stringify how to react to them and change those modes on that app appropriately.


#3

I am not near a PC right now, but you could always use a structure similar to:

If Conditions are true
Then execute this piston
END IF

Send notifications
Set switches
All other commands here

(Notice the “if then” section has only one command)


#4

Try posting some logs from your manual run, we can help a lot more then. Right now all we can do is guess, really.


#5

Why aren’t you doing all of this in the I’m back routine rather than in WebCore? most of these functions can be handled correctly by the routine function. Also, whatever DTH you have for your lock might have a Hello Home routine to run upon unlocking. I know that a lot of them do. This would then automatically run the routine when the lock is opened.

As far as your precence part of the trigger, i wouldn’t structure it like that. If you’re going to trigger off the lock opening, then why use presence at all. you’re combining them with an AND statement so all have to be true.


#6

Hi Ryan,

So a couple of things here.

Why aren’t you doing all of this in the I’m back routine rather than in WebCore?

the reason for this is because i want to make the routine have a bit more robustness to it to make sure we really ARE arriving home and there is not corner case causing this to turn run. Also i wanted to eventually add more to my piston that is beyond the capabilities of the routine and if i have the actions spread across the piston and routine then if there is something wrong i have to go back and forth to debug. I also want it all organized in one place.

Also, whatever DTH you have for your lock might have a Hello Home routine to run upon unlocking. I know that a lot of them do. This would then automatically run the routine when the lock is opened.

I have a august lock with z wave capabilities and i don’t see this DTH. Can you show me if you know of a DTH i am missing here?

As far as your precence part of the trigger, i wouldn’t structure it like that. If you’re going to trigger off the lock opening, then why use presence at all. you’re combining them with an AND statement so all have to be true.

This is the robustness i was talking about. I would like to really make sure that I am home and unlocking the door rather than someone else is unlocking the door or my presence triggers it alone which could be a false trigger if i am just driving by and not going home actually. You see this happened to my gf she arrived closed to our house but drove by only and it triggered the I’m back routine.

Here is my updated routine now. It works now with a manual execution of the routine that runs the piston. I only have to solve adding a delay or removing the smart home monitor earlier as i have just added lights and sonos alarm to the intrusion detection system which would be a nightmare to trigger.


#7

If someone else has gone to the trouble to unlock your lock, odds are they know you have an alarm system and have disabled it. People breaking into homes don’t unlock locks, they break windows or doors. Quick and easy. No one is going to take the time to pick your lock. So, I fail to see why that wouldn’t be a viable option. Also, I have things that are above the functionality of routines too. But I started there and then did the actions based on the trigger firing. Or fired the outline from the piston. But the basics, on, off, arm/disarm, I kept within the routine. Why not let it do what it does well. Right?
You keep talking about robustness but you don’t even have a basic function working yet. Rather than starting off super complex, I suggest you start more basic and build on it.


#8

I have a similar piston that works without a flaw. I think the major difference is the presence sensor as a trigger rather than a condition.

Here is the logic I use.


#9

Hi @Ryan780 ,

So far it works for me. I posted this when it wasn’t working, but then got it after tinkering with it. Also the reason i have it set up this way is because my garage door doesn’t have a smart door lock, so by layering up different conditions i can make sure we are arriving and not that the door is just opening up. Your argument about the lock makes sense for the lock not for the garage door which is my other form of entry.

Anyone could open my garage but then when they open the garage door i want the alarm to sound. etc.

Thank you for your input here! I think i will make a slight mod on here just to keep the door lock as the main trigger for one form of entry and then the other way i already have for the garage door.


#10

Thanks @JSeaton! That is what i have but triggered with a close sensor or a lock. In this case with a lock as a trigger i can remove the other conditions, but if i want to trigger via a door sensor then i can just leave it as is.

Side note: why do you change the condition of a contact sensor to open?


#11

Hi,

Not sure i follow why the notifications are after the END IF…

Please can you explain?

Thanks


#12

My piston turns off the alarm, sets the location mode and opens my garage door.

Since it opens the garage door, I have protections in place like the home having to be in Away mode, and it being between sunrise and sunset. Last thing I wanted was for my garage door to open in the middle of the night because one of our phones died and it powered back on while we are sleeping.


#13

Ah i think that you mean that the piston will only run if those conditions in the IF are true, but those outside of the END IF will always run regardless of the conditions being true?