I use a combo of things put into a Bayesian Sensor which then triggers a Boolean Input based whether or not the Sensor is ON or OFF. Also, it’s nice to have the Boolean Input so if needed, I can quickly toggle presence.
- platform: bayesian
name: Jake's Home
prior: '0.1'
probability_threshold: '0.75'
observations:
- entity_id: 'device_tracker.jake_pixel_xl'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'home'
- entity_id: 'device_tracker.jakes_ping'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'home'
- entity_id: 'device_tracker.jakes_2nd_ping'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'on'
- entity_id: 'binary_sensor.jake_arrival'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'on'
- entity_id: sensor.jake_ble_presence
prob_given_true: '0.95'
prob_given_false: '0.5'
platform: 'numeric_state'
above: '50'
- entity_id: 'binary_sensor.jake_tasker'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'on'
- entity_id: 'device_tracker.tile_wallet'
prob_given_true: '0.9'
prob_given_false: '0.2'
platform: 'state'
to_state: 'home'
I use Owntracks HTTP along with MAC Address, a variety of Pings from NMAP, Tile Trackers, Arrival Sensor from SmartThings and use Presence. Works great. Just need to adjust the threshold for your needs.