Difference between Person and User?

What is the difference between a user and a person?

I noticed that a person can also login. So if a user is just the technical aspect of having a system privilege, how can I connect a person with its user representation?

1 Like

Only if the person is also a user.

A person can hav device_trackers assigned so you know which zone a person is in.

A user is assigned privileges (Admin for example)

1 Like

So how do I connect the two? I currently have other people defined as users but would like to assign device trackers.

Turns the Person into a User (or strictly, adds a User linked to the Person).

And when there is a user you can edit the person to add device_trackers

I am aware of this. However, the challenge is: there are already existing users. Now I would also like to have corresponding persons. I can create a person in addition to the user, but that actually keeps both things seperate. Is this the Home Assistant way to do? Or can I link a person with an existing user? Or do I need to remove the users first and then create new persons with login capability?

When I try to create a new person with the same name as an existing user, I get an error:

Don’t select ‘allow person to login’ when you create the person. They will still have the user you made before.

1 Like

Hmm out of curiosity whats the usecase for this? I cant really get a grip on why there should be 2 sets of users/persons

1 Like

Because users could be nodered, iot devices, cameras, other machines etc. Stuff that doesn’t need have a state in Home Assistant, but does need some sort of Auth in order to use it. For example - if you wanted NodeRed (on a different machine) to be able to use the Home Assistant contrib nodes, you would need to create a user in Home Assistant, log in as that user, and then create a Long Lived Access Token, which you can give to NodeRed. That means that if an automation in NodeRed turns off a light bulb for example, the Home Assistant logbook will reflect which user (NodeRed) performed that action. As for people who you want to be able to login and control the system via the web interface, and specifically if you want them to be able to use the phone apps - you would create a Person.

I mean put simply -
People / Person - is very specifically for actual people.
Users - is for everything else that needs authentication, but is not necessarily a person.

2 Likes

Apologies, but that is still confusing and doesn’t feel like a standard approach.

For example, when I give Home Assistant access to my Synology NAS, I would create another user on the NAS and use these login details for the HA integration to get access to the stats. From your argument, I figure the HA user is the same, but the other way around. Ok, understood.

But why would I need a person then? Isn’t that nothing but a special user that happens to have special access privileges, e.g., for Lovelace and mobile apps? That happens to be tracked by a device_tracker (sic! it’s not a person tracker, but a device_tracker)?

My feeling is, these should all be users.

What makes this worse is that attributes of these persons and users are unclear in their association. For example, for a person, I can set if that person can login. But I cannot set of that person can login remotely. For a user, I can set if that user can login remotely or not, but I cannot say that he cannot login at all. Sounds like two related properties that are found in two different places.

No no no no no no. I do not want to track the location of Alexa, or any hard device. Nore do I want them to show up on maps or treated as items that enter or leave zones.

Persons are people and they have location tracking for home/away detection.

Users are simply auth credentials for logging in.

Create your person, allow them to log in by using the provided toggle. If you made a mistake, delete your user then create the person and allow them to log in.

1 Like

Technically understood.

But the interface really doesn’t get this across to me as a user, sorry.

What would help me at least, would be to remove the user-like properties from the Person dialog:
image

These seem to be User properties and not Person properties.

I would find it more intuitiv, if a Person is just that, a person, a human being that can be tracked, displayed on a map, you name it. That would have nothing todo with logging in and using (!) Home Assistant.

Is there a need to connect these two things at all? If so, I would use a drop-down in the Person dialog saying: “This Person can log into the system as User:” with a selection of the current users. But you don’t have to pick one.

There could be a mirroring dropdown in the User dialog saying: “This User is associated with Person:” with a selection of the current persons. But again, you don’t have to pick one. Obviously, the two settings would have to stay in sync.

The “Allow Person to login” toggle is redundant than. The other two settings should be in the User dialog, as they reflect User proporties.

my 2 cts…

Yes, the UI shows you who uses what based on the user that uses it. It’s very useful for logbook. You can see who turned on and off things.

It used to be like this. It was way more confusing and it generated alot of complaints. You’re just on the other side of the fense. Sorry, its not going back.

Ideally, there is no fence, but the developers have understood the users (i.e. persons) well enough so that the implementation explains itself. That’s obviously not the case yet.

I’ve never seen the “old” solution so I cannot judge how that was. But never mind, I won’t waste more time on this. No worries.

Initially I had to agree with kongo, but after a while of thinking I have to admit using distinct entities to separate persons from access roles is good idea. For example: when iterating through persons (users being real persons likely with trackers assigned) you don’t need to filter out other accounts (dedicated for software components).

The only complaint I could have is how it is presented to the HA user. Also name “user” is kind of unfortunate. IMO the data/objects are too literally translated to what is shown in GUI. It could be organized differently (ie as a role with ability to log-in, has tracker assigned etc).

I agree with @kongo09. IMHO, it all could have been users, just making an additional flag there IsPerson, if true - add property DeviceTracker.
Thus, on map and everywhere else, where only real persons should be shown\treated, just list those users, who has IsPerson set.

1 Like

I concur with @Shurov. The current configuration is really confusing. I created Users but not I want some of them to be a Person on the system. It looks like I need to delete the users and start over with them being a Person.

Thanks, this was super helpful! I realized I had messed up stuff when I initially set up HA 6 months ago as I hadn’t quite grasped the difference. Now understanding the whole thing a lot better, I went back and cleaned up persons and users and @petro this specific reply really helped me :). Thanks! It actually makes sense :). Ya it could perhaps be made a bit nicer (including allowing us to reassign the owner and perhaps rename user names without having to nuke and recreate users, but on the whole it’s fine).

It would be nice to be capable of “upgrading” users to persons.
I also did this error. Now I have to wait for my wife coming home and explain to her IT Stuff…