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

"BarrierOperator" Command Class

The Barrier Operator Command Class is used to control and query the status of motorized barriers.

# `state`

```elixir
@type state() :: :closed | 1..99 | :closing | :stopped | :opening | :open
```

# `subsystem_state`

```elixir
@type subsystem_state() :: :on | :off
```

# `subsystem_type`

```elixir
@type subsystem_type() :: :audible_notification | :visual_notification
```

# `bitmask_to_subsystem_types`

# `state_from_byte`

```elixir
@spec state_from_byte(byte()) ::
  {:error, Grizzly.ZWave.DecodeError.t()} | {:ok, state()}
```

# `state_to_byte`

```elixir
@spec state_to_byte(state()) :: byte()
```

# `subsystem_state_from_byte`

```elixir
@spec subsystem_state_from_byte(byte()) ::
  {:error, Grizzly.ZWave.DecodeError.t()} | {:ok, subsystem_state()}
```

# `subsystem_state_to_byte`

```elixir
@spec subsystem_state_to_byte(:off | :on) :: 0 | 255
```

# `subsystem_type_from_byte`

```elixir
@spec subsystem_type_from_byte(any()) ::
  {:error, Grizzly.ZWave.DecodeError.t()} | {:ok, subsystem_type()}
```

# `subsystem_type_to_byte`

```elixir
@spec subsystem_type_to_byte(:audible_notification | :visual_notification) :: 1 | 2
```

# `subsystem_types_to_bitmask`

```elixir
@spec subsystem_types_to_bitmask([subsystem_type()]) :: byte()
```

Converts subsystems into a bytes

---

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