# zigbee v0.1.0 - Table of Contents

> A Zigbee stack built in pure Elixir

## Pages

- [zigbee](readme.md)
- [Changelog](changelog.md)

## Modules

- Core API
  - [Zigbee](Zigbee.md): A from-scratch, pure-Elixir Zigbee stack.
  - [Zigbee.Adapter](Zigbee.Adapter.md): Behaviour for a Zigbee chip backend: a radio + NCP protocol presented as a
normalized coordinator interface.
  - [Zigbee.Interview](Zigbee.Interview.md): Orchestrates the join → interview → bind → report flow for a device that has
joined the coordinator's network.
  - [Zigbee.Message](Zigbee.Message.md): A normalized inbound Zigbee APS message.

- Codecs
  - [Zigbee.ZCL](Zigbee.ZCL.md): Zigbee Cluster Library (ZCL) frame codec: the application payload that rides
inside an APS unicast on a Home Automation endpoint (profile 0x0104).
  - [Zigbee.ZDO](Zigbee.ZDO.md): Zigbee Device Objects (ZDO) codec, the device-management protocol that runs on
endpoint 0, profile 0x0000. Used to *interview* a freshly-joined device
(enumerate its endpoints and their clusters) and to *bind* a cluster so the
device reports to us.

- EmberZNet backend
  - [Zigbee.EZSP](Zigbee.EZSP.md): EZSP application layer over `Zigbee.EZSP.ASH.Connection`.
  - [Zigbee.EZSP.ASH](Zigbee.EZSP.ASH.md): ASH (Asynchronous Serial Host) protocol codec for the EmberZNet NCP-UART
interface, per Silicon Labs UG101.
  - [Zigbee.EZSP.ASH.Connection](Zigbee.EZSP.ASH.Connection.md): Stateful ASH link over a serial port (`Circuits.UART`).
  - [Zigbee.EZSP.Adapter](Zigbee.EZSP.Adapter.md): `Zigbee.Adapter` backend for Silicon Labs EmberZNet dongles (EZSP over ASH).
  - [Zigbee.EZSP.Diagnostics](Zigbee.EZSP.Diagnostics.md): Low-level probing helpers for bringing up a new NCP over serial.
  - [Zigbee.EZSP.Frame](Zigbee.EZSP.Frame.md): EZSP (EmberZNet Serial Protocol) frame encoding/decoding for the **v8+ frame
format** (frame format version 1), as used by EZSP v13 firmware on the ZBT-2.
  - [Zigbee.EZSP.Status](Zigbee.EZSP.Status.md): Decoding for `EmberStatus`, the 1-byte status code returned by most EZSP
commands and carried in `stackStatusHandler` callbacks.

