A collection of tools for Wyoming satellites that provides:
- A Wyoming event to MQTT bridge - publishes satellite events to MQTT
- An LED controller for ReSpeaker Mic Array v2.0 that responds to MQTT messages
- Monitor Wyoming satellite events for home automation (via MQTT)
- Synchronize LED behavior across multiple satellites (e.g., all satellites in a room light up when any one detects a wake word)
./script/setupThis service listens for Wyoming events and publishes them as MQTT messages. When starting the wyoming-satellite you can add the event-uri using --event-uri 'tcp://127.0.0.1:10800'.
script/run_mqtt \
--uri 'tcp://127.0.0.1:10800' \
--name 'living_room' \
--mqtt_host 'ip-to-your-mqtt-broker' \
--mqtt_username 'username (optional)' \
--mqtt_password 'password (optional)' \
--debugThis service listens for MQTT messages and controls the ReSpeaker LEDs. The --name is used to filter out any events that are not belonging to the satellite.
script/run_led \
--mqtt_host 'ip-to-your-mqtt-broker' \
--mqtt_username 'username (optional)' \
--mqtt_password 'password (optional)' \
--name 'living_room' \
--debugThe service publishes to wyoming-satellite/event with JSON payloads containing:
{
"name": "living_room",
"event": "event_type",
"data": {}
}Supported events:
connected- Satellite connecteddisconnected- Satellite disconnecteddetection- Wake word detectedvoice-started- Voice activity startedvoice-stopped- Voice activity stoppedstreaming-started- Audio streaming startedstreaming-stopped- Audio streaming stoppedaudio-start- Audio playback startedaudio-stop- Audio playback stoppedplayed- Audio playback completed
--uri- Wyoming server URI (required)--mqtt_host- MQTT broker address (required)--mqtt_port- MQTT broker port (default: 1883)--mqtt_username- MQTT username--mqtt_password- MQTT password--name- Satellite name (required)--debug- Enable debug logging
--mqtt_host- MQTT broker address (required)--mqtt_port- MQTT broker port (default: 1883)--mqtt_username- MQTT username--mqtt_password- MQTT password--name- Satellite name to respond to (required)--debug- Enable debug logging
The LED ring responds to events as follows:
- Satellite connected: Think pattern (turns off after 2 seconds)
- Satellite disconnected: LEDs off
- Wake word detection: Think pattern
- Voice activity started: Status update only
- Voice activity stopped: Status update only
- Streaming started: Status update only
- Streaming stopped: LEDs off
- Audio start: Wakeup pattern
- Audio stop: LEDs off
- Audio played: LEDs off
- Python 3.7 or later
- ReSpeaker Mic Array v2.0 (for LED control)
- MQTT broker
- Wyoming satellite service