# `Grizzly.Requests.Handler`
[🔗](https://github.com/smartrent/grizzly/blob/v9.1.4/lib/grizzly/requests/handler.ex#L1)

Behaviour for how commands should handle incoming Z-Wave messages

# `handle_response`

```elixir
@type handle_response() ::
  {:complete, response :: any()} | {:continue, state :: any()}
```

# `handle_ack`

```elixir
@callback handle_ack(state :: any()) :: handle_response()
```

# `handle_command`
*optional* 

```elixir
@callback handle_command(incoming_command :: Grizzly.ZWave.Command.t(), state :: any()) ::
  handle_response()
```

# `init`

```elixir
@callback init(original_command :: Grizzly.ZWave.Command.t(), init_state :: any()) ::
  {:ok, state :: any()}
```

---

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