led-controller-version-3-device-simulated-respeaker
Ein vollständiger Software-Ersatz für die Hardware — dieselben Ports, dieselbe Rolle. Der Dienst merkt nicht, dass die Gegenstelle kein Gerät ist.
Es enthält:
SimulatorFrameSink— überträgt den LED-Frame über einen lokalen Transport,SimulatorDoaProvider— liest die im Fenster eingestellte Richtung und Sprachaktivität zurück,- die Ringanzeige als eigenständige Anwendung.
Die dienstseitige Hälfte braucht kein Qt. PySide6 ist ein Extra und wird nur gebraucht, wenn das Fenster geöffnet wird:
uv pip install "led-controller-version-3-device-simulated-respeaker[gui]"
lefx-simulator
Ohne installiertes Konsolenskript geht es als Modul. app.py direkt als Datei
zu starten geht nicht — die Datei erreicht ihre Nachbarmodule über relative
Importe, und eine über den Pfad gestartete Datei hat kein Paket, relativ zu dem
das ginge:
uv run python -m lefx.device.simulated_respeaker
Als Exe
Für eine Maschine ohne Python-Checkout, oder um das Fenster offen zu lassen, während am Checkout gearbeitet wird:
uv sync --group build
uv run --group build python scripts/build_simulator.py
Ergebnis ist build/dist/lefx-simulator.exe (~47 MB, eine Datei).
--onedir startet schneller, --windowed verbirgt die Konsole — dann sieht man
allerdings auch nicht mehr, wenn der Dienst nicht erreichbar ist.
Damit lassen sich auch kontrollierte Overlays wie direction_indicator ohne
angeschlossenen reSpeaker entwickeln und prüfen — der Effekt fragt nach der
Fähigkeit doa und bekommt sie hier ebenso wie von der Hardware.
Transport
Der Dienst hört auf 127.0.0.1:8787, das Fenster verbindet sich dorthin.
Diese Richtung entspricht der Hardware: der Dienst läuft, ob ein Gerät
angeschlossen ist oder nicht, und ein später erscheinendes Fenster ist ein
gewöhnliches Ereignis, kein Neustart. Das Fenster verbindet sich selbsttätig neu.
Der Port lässt sich auf beiden Seiten setzen:
uv run lefx serve --sink simulator --sink-option port=8770
Alternativ über LEFX_SIMULATOR_PORT, das beide Hälften lesen.
Grenzen
Ohne verbundenes Fenster meldet die Senke available=False und der Provider
liefert None — dieselbe Bedeutung wie ein abgezogenes Kabel. Der Dienst läuft
weiter, kontrollierte Overlays gehen über waiting nach failed.
Metadata
Release files for led-controller-version-3-device-simulated-respeaker 3.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| led_controller_version_3_device_simulated_respeaker-3.0.3.tar.gz | 18.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| led_controller_version_3_device_simulated_respeaker-3.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.9 kB
Release files / led_controller_version_3_device_simulated_respeaker-3.0.3.tar.gz
| Download URL | led_controller_version_3_device_simulated_respeaker-3.0.3.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ccda9812c5ed2863ff1128c3c96b0aa60eceeea3026dcb0655beadff646c9209
|
|
BLAKE2b-256 checksum How to use checksums |
af081995b3d93d70b6b62605f95eb5befbe28c0b8937fd45c1011378037c05f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency logRelease files / led_controller_version_3_device_simulated_respeaker-3.0.3-py3-none-any.whl
| Download URL | led_controller_version_3_device_simulated_respeaker-3.0.3-py3-none-any.whl |
|---|---|
| Size | 23.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94aa4fd4af58ea06233252b187b810ec688bc08196b7d66f3e81984eaa8de8bc
|
|
BLAKE2b-256 checksum How to use checksums |
01e6e965e88c16c56d69b3080720aaf466141fefc205b3dd926f031dc9f924aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency log