Component person cannot be merged

I have my files setup in the one-file-one-task structure that @frenck has explained in his nice video.

To keep to this setup, the PERSON component should move to its own package file and that gets imported into configuration.yaml.

But that gives me the following error:

[homeassistant.config] Package person setup failed. Component person cannot be merged. Expected a dict. (See /config/packages/person.yaml:4). 

this is the content of the person.yaml:

# use person component
#

person:
  - name: Roland
    id: person_roland
    device_trackers:
      - device_tracker.nmap_rolands_nokia

and the include is this:

  packages:
    !include_dir_named packages

this works for everything else.

It all works when I add the exact same code directly into configuration.yaml:
homeassistant:
# some basic information on where we are …
name: Home
latitude: !secret HOME_LATITUDE
longitude: !secret HOME_LONGITUDE
unit_system: metric
time_zone: Australia/Sydney
elevation: 178

  packages:
    !include_dir_named packages
    
person:
  - name: Roland
    id: person_roland
    device_trackers:

Am I doing something wrong or is this a bug?

edit: I am on 0.88.0 on docker.

1 Like

I had the same problem.
Since i wanted to test it out i had to go with putting

person:

in configuration.yaml and use the web gui under config in hass to add persons and device_trackers to them

1 Like

Thanks

I found that I can do the full config in the configuration.yaml, just not via a package

Yep. I had this issue too. I tried to add it to where I have all my other people tracking stuff.

created an issue

Can you simply nest this under homeassistant: in your package.yaml file?

E.g.

homeassistant:
  person:
    - name: User
      id: user
      user_id: User
      device_trackers:
        - device_tracker.user_iphone
        - device_tracker.user_iphone_bluetooth

No, that results in this error:
[homeassistant.config] Package person contains invalid customize
and I don’t think it should be there, only customize is at that level.

I’ve included person: in the configuration.yaml and rebooted, but I cannot find the web gui. Could you give some more information on where to look for it? Thx.

1 Like

I did not have this menu option, reset of browser cache did the job.

has this:

Package package_person setup failed. Component person cannot be merged. Expected a dict.

been taken care of yet? Testing leads me to the same error, wonder if I am doing something wrong using a package, or my code is faulty, or if HA simply won’t do it yet. HA 90.2 here

See the issue I raised a few posts above.
It is still open, but there is some activity on it in the last few hours…

thanks, added a comment on the issue, hope this gets fixed soon.

btw, will this person have state follow the zones the gps trackers are in? Docs aren’t clear about that and only mention home/not_home?

my customization is ready for that:

not sure if the component follows zoning to the underlying device_trackers, but so far customizing the entity_picture does work, proof of the component person being alright when used in configuration.yaml (and the customization in my package_person)

homeassistant:
  customize:
    person.name:
      templates:
        entity_picture: >
          if (state === 'home' || state === 'not_home') return '/local/tiles/family/name_' + state + '.png';
          return '/local/tiles/family/name_' + entities['sensor.name_location_picture'].state + '.png';

got dedicated images for each of my zones per person :wink:

update
yes, the zoning is working fine, can see the zones in the state, and my above customization shows the appropriate entity_picture. nice.

I see the issue has been closed but and fixes merged in to 0.91 but with 0.91.1 I am still experiencing the issue. Anyone else or had the config format changed as well?

I think it is still in the dev branch. Not sure what version it will make it into …

Just an update, version 0.92.x has fixed this issue.