# huesmith
Build Philips Hue–compatible Zigbee lights on the ESP32-C6 / ESP32-H2 in Rust.
Any LED — on/off, dimmable, CCT (tunable white), or a full-colour WS2812B strip —
becomes a device that pairs directly with a real Hue Bridge and is controllable from
the Hue app. No cloud, no custom hub.
```rust
fn main() {
// Cool/warm white CCT light on GPIO 19 / 18; pairs with any Hue Bridge.
huesmith::cct(19, 18).starts_on().launch();
}
```
## Entry points
| `huesmith::on_off(gpio)` | On/Off | `0x0100` |
| `huesmith::dimmable(gpio)` | Dimmable white | `0x0101` |
| `huesmith::cct(cool, warm)`| Colour temperature| `0x010C` |
| `huesmith::color(gpio)` | Full colour (WS2812B) | `0x010D` |
| `huesmith::rgb_strip(gpio, n)` | Full colour strip of `n` WS2812B | `0x010D` |
## Requirements
- An ESP32-**C6** or ESP32-**H2** (these are RISC-V, so the standard Rust **nightly**
toolchain + `rust-src` is enough — the Xtensa `espup` toolchain is **not** required).
- `cargo install ldproxy espflash cargo-espflash`
- ESP-IDF v5.2.2 (fetched automatically on first build).
Platform-agnostic logic (color math, state machine, scene parsing) lives in
[`huesmith-core`](https://crates.io/crates/huesmith-core) and is unit-tested on the host.
> **Note:** docs.rs cannot build ESP-IDF crates, so API docs are not rendered there.
> See the [project repository](https://github.com/canack/huesmith) for the full
> setup guide, wiring diagrams, examples, and FFI/safety notes.
## Trademark & affiliation
This is an independent interoperability project and is **not affiliated with,
authorized, or endorsed by Signify** (Philips Hue). "Philips Hue" and "Signify"
are trademarks of Signify Netherlands B.V.; the bundled model presets and
manufacturer codes exist only so a self-built device can interoperate with a Hue
Bridge. For educational and hobby use.
## License
MIT