Metadata-Version: 2.4
Name: led-ctrl-v3
Version: 3.0.0
Summary: LED ring control for the reSpeaker XVF3800 — the LEFX V3 system, installed as one thing
Project-URL: Homepage, https://github.com/marcosudau-vps/led_controller_respeaker-v3
Project-URL: Source, https://github.com/marcosudau-vps/led_controller_respeaker-v3
License-Expression: MIT
Keywords: effects,led,lefx,respeaker,xvf3800
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Requires-Python: <3.13,>=3.12
Requires-Dist: led-ctrl-v3-device-respeaker==3.0.0
Requires-Dist: led-ctrl-v3-engine==3.0.0
Requires-Dist: led-ctrl-v3-interfaces==3.0.0
Requires-Dist: led-ctrl-v3-sdk==3.0.0
Provides-Extra: all
Requires-Dist: led-ctrl-v3-device-simulated-respeaker[gui]==3.0.0; extra == 'all'
Requires-Dist: led-ctrl-v3-effect-creation==3.0.0; extra == 'all'
Requires-Dist: led-ctrl-v3-set-core==3.0.0; extra == 'all'
Requires-Dist: led-ctrl-v3-set-smartspeaker==3.0.0; extra == 'all'
Provides-Extra: core-set
Requires-Dist: led-ctrl-v3-set-core==3.0.0; extra == 'core-set'
Provides-Extra: effect-creation
Requires-Dist: led-ctrl-v3-effect-creation==3.0.0; extra == 'effect-creation'
Provides-Extra: simulated-respeaker
Requires-Dist: led-ctrl-v3-device-simulated-respeaker[gui]==3.0.0; extra == 'simulated-respeaker'
Provides-Extra: smartspeaker-set
Requires-Dist: led-ctrl-v3-set-smartspeaker==3.0.0; extra == 'smartspeaker-set'
Description-Content-Type: text/markdown

# led-ctrl-v3

LED-Ring-Steuerung für den reSpeaker XVF3800 — das LEFX-V3-System, als eine
Installation.

```bash
pip install led-ctrl-v3
```

Das ist die Normalversion und für sich genommen vollständig: Schema, Laufzeit,
Steuerungsoberfläche (`lefx`) und die Hardware-Anbindung. Sie spielt fertige
`.lefx`- und `.lefxset`-Dateien auf einem reSpeaker ab und braucht dafür keines
der optionalen Pakete.

Dieses Paket enthält selbst keinen Code. Es ist der Name, unter dem das System
installiert wird, damit „welche Pakete brauche ich" eine Antwort hat statt vier.

## Was drin ist

| Distribution | Import | Rolle |
|---|---|---|
| `led-ctrl-v3-sdk` | `lefx.sdk` | Der Autorenvertrag: Definitionsschema, Wertnormalisierung, Ports |
| `led-ctrl-v3-engine` | `lefx.engine` | Layer, Komposition, Lebenszyklen, Registry, `lefx/3`-Loader |
| `led-ctrl-v3-interfaces` | `lefx.interfaces` | HTTP-API v3, CLI, Client, Prozess-Hosting, Konfiguration |
| `led-ctrl-v3-device-respeaker` | `lefx.device.respeaker` | USB-Transport, LED-Senke, DoA-Provider |

## Optionen

```bash
pip install "led-ctrl-v3[simulated-respeaker]"   # Software-Geräteersatz mit Ringfenster
pip install "led-ctrl-v3[effect-creation]"       # Effekte erstellen: lefx-pack und lefx-studio
pip install "led-ctrl-v3[core-set]"              # Referenzkatalog
pip install "led-ctrl-v3[smartspeaker-set]"      # Sprachassistenz-Katalog
pip install "led-ctrl-v3[all]"                   # alles davon
```

Mehrere zugleich gehen wie üblich: `pip install "led-ctrl-v3[core-set,smartspeaker-set]"`.

Jede Option ist ein eigenes Paket, keine Funktion, die eingeschaltet wird. Was
nicht installiert ist, existiert im laufenden System nicht — Geräte und
Effektsätze werden über Entry Points gefunden, nicht importiert.

## Erste Schritte

```bash
lefx serve --sink respeaker
```

```bash
lefx list states
lefx set state listening
lefx emit event notification
```

Ohne angeschlossene Hardware:

```bash
pip install "led-ctrl-v3[simulated-respeaker,core-set]"
lefx-simulator
lefx serve --sink simulator
```

## Konfiguration

Alles Projektweite steht in einer `config.yaml` im Arbeitsverzeichnis (oder
unter `~/.lefx/config.yaml`, oder wohin `LEFX_CONFIG` zeigt), und jeder
Schlüssel lässt sich als Umgebungsvariable in Großbuchstaben überschreiben —
mit `LEFX_`-Präfix oder ohne.

```yaml
led_count: 12
sink: respeaker
port: 8765
included_lefxset: [core, smartspeaker]
```

```bash
INCLUDED_LEFXSET=[core, smartspeaker] lefx serve
```

`lefx config` zeigt, welcher Wert gerade gilt und woher er kommt.
