Accurately depict "arriving home". bayesian / zones

So I’ve just began toying about with bayesian sensor and I can 100% see the benefits of it, but I can’t put my finger on an accurate set of rules that will make sense 99% of the time.

I’ll walk you through my sensor and it’s observations.
I have a “Tile” tracker on my keys (Lat/Long)
Tracker through personal device (Lat/Long)
Front door status locked (this might be a red herring as it’ll be locked most of the time in/out)
If personal device is connected to Wifi.

So currently the most “weighted” option I’ve given to my personal device being on wifi, as if I’m on my wifi, there is a very good (pretty much 100%) chance I am home.

My end goal here is to effectively do “things” based on certain times of the day when I am on my way back home, example, I walk the dog first thing in the morning, so if I’m “arriving home” before 9AM, I want my coffee machine to come on (prep takes about 30 seconds for it to heat up).
If I am “arriving home” after 5PM, and the door is locked, unlock the door ready for my arrival (this is the end goal, but obviously the sensor needs to be pretty fool proof).

My issue is, it seems to fire multiple times rather than just once, and I guess this could be due to wifi drop outs or other sensor periodic updates.

How do you guys do it?

Am I missing something really obvious?

I know homeassistant has “Zones” but I’ve had quite mixed results with the accuracy of the data honestly. And I don’t want to know if I am “in” a zone, I want to know if I’ve gone from being “not in a zone” to in zone “home” etc.