I also did not find a ONE good and accurante way to say when I or someone in the household is away.
My strategy now is to use a set of sensors. I agree with @rlkoshak but I am not as far as him and I keep making it complicating, plus I have no dog
I am using a ping of the Phone devices. It is not very accurate, rather slow and laggy if you debounce to avoid false triggers with devices sleep, hop between networks, when DNS fails, etc… It has the benefit to work without the devices having to have any software installed.
I am letting my OpenHab App report the connected Wifi. If works only on devices with the OpenHab App, some permissions and some luck
I am using Motion and Occupancy sensors as well. They don’t tell me that I am away but tell me that I am probably not, or someone else is home
Yesterday, I published sys2mqtt with a first plugin that also can help in the sense that if I use my computer, I know for you I am not away and only I can use my computer.
If you are using Tasker on Android, you may also setup some automation so your phone tells OH that you are now in the car (detected when the car’s bluetooth is connected for instance). That is often a sign that you will be gone soon or someone will be gone with your phone and you car
Finally, there is always an option that is very reliable and can work if you make it convenient: THE BUTTON.
Just put a very simple button such as a SNZB01P next to the door and get used to pressing it when you leave and when you come back. To incentivise its use, make it turn on/off the lights, play some bye/welcome home message, etc… It has the drawback of being manual but it is pretty reliable.
My suggestion would be to create a Switch item
and turn it on/off with some/all of the methods above. This way, if you forget to click the button for instance, but hop in the car, things will still work. If you notice that the car method is reliable, dump the push button even.