# `Grizzly.ZWave.CommandClasses.UserCode`
[🔗](https://github.com/smartrent/grizzly/blob/v9.1.4/lib/grizzly/zwave/command_classes/user_code.ex#L1)

Command Class for working with user codes

# `extended_user_code`

```elixir
@type extended_user_code() :: %{
  user_id: extended_user_code(),
  user_id_status: user_id_status(),
  user_code: String.t()
}
```

# `extended_user_id`

```elixir
@type extended_user_id() :: 0..65535
```

# `keypad_mode`

```elixir
@type keypad_mode() :: :normal | :vacation | :privacy | :lockout | :unknown
```

# `user_id_status`

```elixir
@type user_id_status() ::
  :available
  | :occupied
  | :disabled
  | :messaging
  | :passage
  | :status_not_available
  | :unknown
  | byte()
```

# `decode_extended_user_codes`

```elixir
@spec decode_extended_user_codes(binary()) ::
  {user_codes :: [extended_user_code()], remainder :: binary()}
```

# `encode_extended_user_code`

# `keypad_mode_from_byte`

```elixir
@spec keypad_mode_from_byte(byte()) :: keypad_mode()
```

# `keypad_mode_to_byte`

```elixir
@spec keypad_mode_to_byte(keypad_mode()) :: 0 | 1 | 2 | 3
```

# `user_id_status_from_byte`

```elixir
@spec user_id_status_from_byte(byte()) :: user_id_status()
```

# `user_id_status_to_byte`

```elixir
@spec user_id_status_to_byte(user_id_status()) :: byte()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
