I have two users who occasionally stay overnight in our home so they have lock codes, but I keep those codes disabled unless they are staying with us.
I tried to add a new user today and at first it looked like it didn't take. The name did not show up in the list of names and when I went to the lock page under Devices, the name and code did not show up there, either. While looking there, I noticed that the disabled users did not show up, either. (This makes sense to me -- I assume HE actually removes the code from the lock when disabled and adds it back when enabled and that the lock doesn't actually know what "disabled" means.)
I tried to add the new user again and got an error that the code is in use by one of the disabled users. When to that user's page in Lock Manager and she now has TWO codes assigned -- her original code and the new code that is supposed to be for the new user. I deleted the new code, re-enabled her and the other disabled user, and was able to successfully add the new code to the new user.
TL;DR: When you have any user codes disabled in Lock Manager, creating a new user results in the code being assigned to the first empty slot on the lock itself, even if that slot is designated for a user that is currently disabled.
You are correct in that a disabled user is simply a construct in lcm as locks do not support this, however lcm does not restore or care about the previous slot that was used. It uses the first available slot on a given lock.
I'll have a go to see if I can replicate what you observed.
Is it possible from a software perspective for LCM to send a code to a specific slot? Or is this a limitation with Z-Wave or the lock itself (Kwikset 914 in my case) that only allows the Z-Wave controller to send a code to the lock but not a slot number, and the lock will always assign that code to the first available slot? If the latter is true, could LCM be updated to automatically enable all codes when a new code is created and then after the new code is assigned automatically disable the ones that were disabled? This would make the user experience far less frustrating, I would think.
Disabling a code removes it from the lock entirely, but keeps it in the software for future use. Once removed from the lock, an empty slot is created. That slot is then used for a new code that is created. So instead of the new user's name appearing in LCM with their code, the user that was disabled now has two codes, because LCM assigned the new code to the first empty slot, which previously belonged to the user that is currently disabled. So I must manually enable any codes that are currently disabled before creating a new user, and then go back and disable them if I want them to be disabled.
Well sort of, but once a code is deleted from a lock, there is no longer an association between the disabled code and it's former slot number, not on the lock, not in LCM.
So I don't deny that you had an issue, but I don't think it's related to slot number re use.
Say I have 3 users. User 1 is always enabled. I disable User 2, and then later User 3. Later I re-enable User 3. Are you saying that code will now be stored in Slot 2 on the lock?
If this is the case, then it makes complete sense to me why my original problem happened. That's why re-enabling all disabled users before adding a new user fixed the issue, and I am wondering if a feature to implement this automatically could be added.