How to configure this bayesian sensor?

Hi, I have this bayesian sensor I’m trying to configure, but I can’t get it to work as I want:

  - platform: bayesian
    prior: 0.75
    name: fez_presence_bayesian
    probability_threshold: 0.95
    observations:
      - entity_id: 'device_tracker.ping_fezsiphone7'
        prob_given_true: 0.99
        prob_given_false: 0.3
        platform: 'state'
        to_state: 'home'
      - entity_id: 'device_tracker.nmap_fezsiphone7'
        prob_given_true: 0.99
        prob_given_false: 0.4
        platform: 'state'
        to_state: 'home'
      - entity_id: 'device_tracker.icloud_fezsiphone7'
        prob_given_true: 0.5
        prob_given_false: 0.3
        platform: 'state'
        to_state: 'home'
      - entity_id: 'device_tracker.bt_fezsiphone7'
        prob_given_true: 0.99
        prob_given_false: 0.1
        platform: 'state'
        to_state: 'home'

I want it to return true if ping, nmap or bt report the home state, because I know with 100% certainty that if they report home they are right.

Then I need to do the opposite, if they are all saying not_home, I want to check with the icloud sensor to make sure even that one is telling me I’m not home, and in that case, return false.

What’s wrong with my config? It’s completely unreliable at the moment.

Check out this answer: The new Bayesian Binary Sensor - Any additional examples?