Refining presence notification based on zone/state change

Alrighty, so I have an automation up and running that works to notify who entered/left which zones. The only issue I’m getting is sometimes I get duplicate notifications, presumably because of GPS inaccuracy on the border of the location radius.

I’m wondering about the best way to refine this. For example, I could set a condition that waits 30 seconds to see if the state is still the same, or I could simply set a condition that only notifies if it hasn’t already notified of state change in the last 30-60 seconds or something.

Has anybody tackled this? For information, the yaml is below:

- alias: Location Tracking
  description: Tracks our location
  trigger:
  - platform: state
    entity_id:
    - person.<name1>
    - person.<name2>
    - person.<name3>
  condition:
  - condition: template
    value_template: '{{  trigger.from_state.state != trigger.to_state.state }}'
  action:
  - service: notify.notify
    data_template:
      message: '{{ trigger.to_state.attributes.friendly_name }} {% if trigger.to_state.state
        == ''not_home'' %}has left {{ trigger.from_state.state }}{% endif %}{% if
        trigger.from_state.state == ''not_home'' %}arrived at {{ trigger.to_state.state
        }}{% endif %}.'
  mode: single