← ClaudeAtlas

ha-esphome-voice-satellite-addlisted

Turns an ESPHome device into a Home Assistant voice satellite per spec/ha/esp32-s3-box and spec/ha/assist-pipeline — emitting the generation-correct audio binding (one I2S bus, the external audio_adc / audio_dac pair the board actually carries, the capture/playback rate asymmetry, the power-amplifier switch), microphone and speaker, voice_assistant bound to both, on-device wake word, a discoverable mute control, and explicit no-Wi-Fi and no-Home-Assistant handling. Reports the HA-side steps it cannot perform: a pipeline per language, engine choice against host capacity, the assist_satellite binding, minimal entity exposure, and the debugging order. Activate on "make this device a voice satellite", "add Assist to my ESPHome box", or equivalent German requests. Do not activate for screen content (ha-esphome-display-author), for Home-Assistant-driven values (ha-esphome-binding-add), or for custom sentences and intent scripts (ha-automation-solution).
nolte/claude-home-assistant · ★ 1 · AI & Automation · score 68
Install: claude install-skill nolte/claude-home-assistant
# HA ESPHome Voice Satellite Add Spec: `spec/claude/ha-esphome-voice-satellite-add/en.md` (EN canonical) / `spec/claude/ha-esphome-voice-satellite-add/de.md` (DE translation). Grounding specs: `spec/ha/esp32-s3-box/en.md` §Audio binding / §Voice-assistant binding (device side) and `spec/ha/assist-pipeline/en.md` (Home Assistant side). Binds the voice path of one device per invocation, and states plainly which half of the result lives in Home Assistant rather than in the YAML. ## Why this is a skill, not an agent - **Mid-flow approval is the contract (decisive):** the board generation, the wake-word placement, and the engine consequences are decisions with hardware and privacy weight — a wrong codec pair addresses ICs that are not on the board, and server-side wake word means satellites stream continuously. - **Two-sided result:** the device YAML is written here, the pipeline is configured by the operator in Home Assistant; that handover is a conversation, not a report. - **Counter-dimension considered:** the pin and codec lookup per generation is mechanical (agent bias), but it is inseparable from the "which generation is actually in hand" question the operator answers; skill wins. ## When this skill activates The user wants an ESPHome device to hear and speak — "mach die Box zum Assist-Satelliten", "add wake word to this device", "wire the microphone and speaker". ## When NOT to activate - what the screen shows during a pipeline run → `ha-esphome-display-author` - a