last_event_indicating_presence = evnt.Ts
} else {
if last_presence { Syslog_.Printf("Presence: Mhh, SomethingReallyIsMoving{%+v} received but presence still true. Quite still a bunch we have here.", evnt) }
- if front_locked && front_shut && back_shut && evnt.Confidence >= 20 && last_event_indicating_presence > 1800 {
+ if front_locked && front_shut && back_shut && evnt.Confidence >= 90 && last_event_indicating_presence > 1800 {
new_presence = false
}
}
last_door_cmd = &evnt
case r3events.DoorManualMovementEvent:
last_manual_lockhandling = evnt.Ts
+ last_event_indicating_presence = evnt.Ts
case r3events.DoorLockUpdate:
front_locked = evnt.Locked
last_frontlock_use = evnt.Ts
//... skip state check .. we had a definite presence event
} else if any_door_unlocked || any_door_ajar {
new_presence = true
- } else if last_door_cmd.Using == "Button" || last_door_cmd.Ts < last_manual_lockhandling {
+ } else if last_door_cmd != nil && (last_door_cmd.Using == "Button" || last_door_cmd.Ts < last_manual_lockhandling) {
new_presence = true
} else {
new_presence = false