Person component only take one device tracker

Hi, I try to setup person component. so I gave my person 2 devices (that I’m 100% sure they are working since I’m using it in other automation, I see them in known_devices.yaml etc…) but when I check the info on the person component in source I can only see one of the devices tracker … this is my configuration.yaml:

person:
  - name: John Doe
    id: John
    device_trackers:
      - device_tracker.john_bluetooth
      - device_tracker.john_wifi

in this casse in source I only see device_tracker.john_wifi so if wifi is not home my personne will be not home even if my bluetooth is home …

can you help me with that ?

The source shown is the one source that triggered the last status change.
With multiple devices there has to be some kind of prioritizing. In your case I would assume, the last change wins.

  1. If there are stationary trackers (non-GPS trackers, i.e., a router or Bluetooth ‘device_trackers’) presenting the status ‘home’, the tracker most recently updated will be used.
  2. If there are trackers of type ‘gps’, then the most recently updated tracker will be used.
  3. Otherwise, the latest tracker with status ‘not_home’ will be used.

You have 2 stationary trackers. Rule 1 states that if any or all of these are reporting ‘home’, it will use the most recent updated one.

in _update_state() of the code, these rules appear to hold true.

It will loop through all trackers and put them into ‘home’ vs ‘not_home’ groups. Then, if any non_gps devices report ‘home’, the person is ‘home’ and source is set to whichever device reported this.

Are you sure disconnecting from wifi is reporting you as not_home? Open the states page in dev tools and check out what device_tracker.john_bluetooth is reporting at this time. The only way it will report you as not_home is if both of these devices report you as not_home at the same time.