Choose the closest example
The maintained examples are the four shipped frontends. Start with the one that already owns the same product surface, then keep only the pieces you need.
ESPHome
Use for ESPHome YAML, native Home Assistant entities, dashboard controls, and ESPHome-managed OTA.
Browse ESPHome frontend ↗Native
Use Improv Serial for initial Wi-Fi provisioning, Direct WebSocket for local setup and sensing, and optional MQTT for Home Assistant Discovery, automation, and broker-based clients.
Browse Native frontend ↗Matter
Use for commissioning and publishing the shared motion state as a standard Matter occupancy sensor.
Browse Matter frontend ↗Streamer
Use for host-paced raw CSI streaming over UDP and the repository collection workflow.
Browse Streamer frontend ↗For a custom product frontend
Start from the quick guide and use Native or Matter as the lifecycle reference. At minimum, your adapter must:
Configure and start
Pass a
RuntimeConfigtoRuntimeFrontendControllerafter Wi-Fi is ready.Keep the loop moving
Call
loop()continuously from the task that owns the runtime.Map events into product behavior
Publish motion only from a ready snapshot, and read the controller's automatically cached snapshot for later status requests.
espectre_core_sdk.h. The core-only path is intentionally advanced; follow csi_pipeline.cpp for normalization, evaluation cadence, and hit filtering before replacing the runtime.