There used to be some Zigbee arrival sensors, but they’ve all been discontinued by their manufacturers, and they’re very hard to find now.
Most people are using a Wi-Fi connection as @h0ckeysk8er described, but for that to work, you would have to keep a Wi-Fi device in the car that could be recognized by your home router. I know you said you don’t always have the same phones in the same cars, you could get an inexpensive Wi-Fi phone and use that, but then the question is how do you keep it charged.
I suppose you could try one of the inexpensive Shelly Wi-Fi sensors (they have excellent battery life) again with the idea that you would act on the sensor connecting to your home Wi-Fi. If you’re interested in talking about that idea, we can go into more details.
another alternative is to use IBeacons. This is what I use myself for a similar use case, unlocking my front door when my wheelchair arrives home. But there’s no direct connection to SmartThings. So you need at least two third-party apps (one to recognize that the ibeacon has arrived, And one to receive a Webhook and then let SmartThings know). Plus, you need an additional device to act as a receiving station for iBeacon.
This is the method I use myself, and I find it very reliable, but it is more challenging to set up than the Wi-Fi method.
The Wi-Fi method doesn’t work for me because the detection zone is too big. It can sometimes take a bus driver several minutes to get me unloaded from the bus and I don’t want my door unlocked that whole time. The ibeacon allows me to set up a detection zone which covers my wheelchair ramp.
But if you’re in a car, moving towards your home, the time between when your home router, connects with the Wi-Fi device in your car and your car arriving at home, should be brief enough that it won’t matter.
Again, just let me know if you’re interested in the details on either of those.