Have you looked into using something like Combined Presence to make your presence detection much more robust?