Member location: border change or continuous state since the last border change?

Ok, I’m confused again. :thinking:

At one point, member location could only be used in a routine to recognize a border change. So the member just arrived or the member just left.

But if you arrived at 5 PM and you set a routine that said “if it’s 6 PM and the member location is home” it wouldn’t run because you were already home so you didn’t trigger the border change.

But recently, I’ve seen a lot of people giving examples of routines using member location as a pre-condition, like it was a constant state since the last border change. So “is home” rather than “arrives home.” in that case, a routine set with a “pre-condition that member location is home and at 6 PM” would run even though the member arrived at 5 PM.

So, which is it? It may well have changed since the last time I used it, I’m just confused. :thinking:

(since I use a Meross smart plug as a proxy for presence, I don’t have this issue. When it’s on, that person is home. When it’s off, that person is away. I turn it on at the border change event, but then it stays on until the next border change event.)

@Automated_House @orangebucket

1 Like

Verbs like ‘arrived’ or ‘departed’ have always crept into descriptions, even being baked into device handlers, and have always been misleading as they have only been accurate for an attribute change event. That said, with Routines the underlying Rules can actually detect changes, and sometimes do even when the wording of a condition implies otherwise.

I have always taken Member Location to mean ‘is at home’ or ‘is away from home’ in the same way presence sensors report ‘is present’ or ‘is not present’. I haven’t used it for a while but I seem to remember that when building the condition the wording implied arrival or departure, but the resulting condition implied a current state.

As an example, if you had a condition ‘Member A or Member B is at home’ it has always been true whenever one of the two is at home, even if the event that triggered its evaluation is actually one of them departing.

My understanding, based on no more than observation, is that Routines/Rules never go looking for the current value of a condition. They already know it.