My 2 cents:
A. you need reliable sensors
B. if the sensors are not 100% reliable you need a time gate
A. reliability:
1. iBeacons as close to 100% as I can see, I do not recall a false positive or negative in the last 3 years -- only when the battery is empty or I have a bug in the program.
2. BLE connect does a bluetooth ping to iPhone, seems reliable, I would say 95% +
3. fingscan, unifi w AP get a quick (1 sec to 5 sec) UP signal but you need > 10 minutes timer to let them go to down when signal is not there any more as ie iPhones go to sleep and do not say good bye, they simply disappear for several minutes (can be 15+) depending on battery level and if they are on AC power
B. timegate:
use as a time gate: eg door sensors: only x secs before and y secs after door state changes changes for the "sensor" are accepted.
So you get an away state when the iPhone disappears when a door has opened x secs before the iPhone goes to down or you get a home state when the iPhone shows up x secs before or y secs after the door opens. -- That is what the home-away plugin does
There are now really thin bluetooth beacons available: They look like a credit card 1.5 .. 1.8 mm thick = 1.5 - 2 credit cards thick. You can put them into your wallet or stick them on your iPhone case or cut a rectangular hole into the case and fit them in.
I have my iPhone always with me and with this solution I now have a 100% solution to indicate that i am at home... unfortunately my wife sometimes leaves her phone at home and does not want a beacon ..
As I have an RPi in almost all rooms I know also in which room I am ~ 90+% reliable -- have build this now just in case that in the future I don't know where I am any more ..
Karl