Commit Graph
173 Commits
Author SHA1 Message Date
imonlinux 957a56c0b5 Removed MQTT Controls
MQTT Control instructions added to the instructions document
2025-10-13 11:30:32 -07:00
imonlinux 523bdd74c4 Updated Grove Port LED Information 2025-10-12 20:45:28 -07:00
imonlinux 24c0d30540 Fix bug effecting Scenes 2025-10-12 20:24:14 -07:00
imonlinux c067f6de99 Fix bug in LED Color Entity that Affected Scenes 2025-10-12 19:53:00 -07:00
imonlinux bfef126e0d Removed the API Microphone Mute Button from Working 2025-10-12 17:13:22 -07:00
imonlinux 49e75d0b2f Merge pull request #25 from imonlinux/MQTT_Controls
## Summary: Feature - Add Full MQTT Control for LEDs and Mute
This pull request introduces a comprehensive MQTT integration to bypass limitations in the pinned aioesphomeapi library and provide full remote control over the voice satellite's features and appearance.

It uses MQTT Discovery to automatically create and configure a device and its associated entities within Home Assistant. This allows for real-time control from the HA interface and enables powerful automations.

Key Features:

A switch entity to mute and unmute the microphone.

A full suite of select and light entities to customize the effect, color, and brightness for each voice assistant state (Idle, Listening, Thinking, Responding, Error).

A number entity to configure the number of LEDs in the strip, allowing for use with custom hardware.

All settings are persistent, retained by the MQTT broker and re-applied whenever the application restarts.

## File Changes
### pyproject.toml (Modified)
Adds paho-mqtt as a core dependency to enable MQTT communication.

Pins aioesphomeapi==41.13.0 to ensure stability with the existing codebase and avoid unresolved library issues on some platforms.

### linux_voice_assistant/mqtt_controller.py (New File)
Introduces the MqttController, a new class that manages all communication with the MQTT broker.

On startup, it connects to the broker and publishes discovery configurations for all entities, automatically creating them in Home Assistant.

Subscribes to command topics to receive instructions from the HA interface.

Subscribes to state topics to read retained messages on startup, ensuring all user settings are persistent.

Acts as a bridge, translating incoming MQTT messages into internal EventBus events for other components to act upon.

### linux_voice_assistant/led_controller.py (Modified)
Refactored for Full Configurability: The controller has been re-architected to remove all hard-coded effects and colors.

Central Configuration: It now uses a central configs dictionary to store the effect, color, and brightness settings for each voice assistant state (idle, listening, etc.).

Dynamic State Management: Subscribes to new set_<state>_effect and set_<state>_color events from the event bus to update its configuration in real-time.

Applies Custom Effects: The main voice event handlers (voice_stt_start, voice_stt_end, etc.) have been simplified to look up the user's chosen configuration and apply it.

New Animations: Implements a full suite of animations (Slow/Medium/Fast Pulse, Slow/Medium/Fast Blink, Spin) to be used by the effect selectors.

### linux_voice_assistant/__main__.py (Modified)
Adds command-line arguments (--mqtt-host, --mqtt-port, etc., and --num-leds) to configure the MQTT connection and initial LED setup.

Instantiates and starts the MqttController on application startup if an MQTT host is provided.

Includes the MicMuteHandler class, which listens for mute commands, updates the global mic_muted state, and clears the audio queue on unmute to prevent processing stale audio.

Updates the process_audio loop to respect the mic_muted flag.

### linux_voice_assistant/satellite.py (Modified)
Adds a handler for the VOICE_ASSISTANT_ERROR event, publishing a voice_error event to the EventBus so the LedController can provide visual feedback.

Fixes a race condition where the "Responding" LED effect was being cancelled prematurely, ensuring it now plays for the full duration of the TTS audio.

### models.py, entity.py, api_server.py (Modified)
Includes various compatibility fixes, reversions, and clean-up from the previous development cycle to create a stable base for the MQTT implementation. This ensures the application starts reliably with the pinned aioesphomeapi version.
2025-10-12 17:11:13 -07:00
imonlinux 8b8de94c76 Cleaned up MQTT Controls Info 2025-10-12 17:08:41 -07:00
imonlinux 5c14c6c782 Improved the MQTT Controls Information 2025-10-12 17:06:44 -07:00
imonlinux f707f3232a Updated with Instructions for MQTT and Grove LEDs 2025-10-12 16:33:07 -07:00
imonlinux 6077a31baa Bug Identified With GPIO LEDs (Grove) 2025-10-12 16:15:22 -07:00
imonlinux dbc371ce8f Bug Identified With GPIO LEDs (Grove) 2025-10-12 16:14:52 -07:00
imonlinux 798c371943 Bug Identified With GPIO LEDs (Grove) 2025-10-12 16:14:21 -07:00
imonlinux 26cdd5159b Updated for MQTT Enable Configurations 2025-10-12 14:11:31 -07:00
imonlinux 37898c8241 Updated for MQTT 2025-10-12 14:04:37 -07:00
imonlinux 939dd8963c Update README.md
Updated for MQTT Implementation
2025-10-12 13:52:22 -07:00
imonlinux 58be335eb7 Update user-pw-linux-voice-assistant.service
Add configs entries for MQTT
2025-10-12 13:35:02 -07:00
imonlinux a26e91eb70 Update user-pa-linux-voice-assistant.service
Add config entries for MQTT
2025-10-12 13:34:12 -07:00
imonlinux 7e4686b8f6 Update user-linux-voice-assistant.service
Add config entries for MQTT
2025-10-12 13:33:36 -07:00
imonlinux 7d4edbf369 Delete linux_voice_assistant/led_controller_marvin.py
Deprecated. All LED effects are configurable via MQTT controls.
2025-10-12 13:12:36 -07:00
imonlinux 6958b09f4d Delete linux_voice_assistant/led_controller_hal.py
Deprecated. All LED controls are configurable via MQTT.
2025-10-12 13:11:52 -07:00
imonlinux 1eef4ba917 Implement MQTT for Advanced LVA Controls
Includes various compatibility fixes, reversions, and clean-up from the previous development cycle to create a stable base for the MQTT implementation. This ensures the application starts reliably with the pinned aioesphomeapi version.
2025-10-12 13:00:52 -07:00
imonlinux 226dc7f11d Implement MQTT for Advanced LVA Controls
Includes various compatibility fixes, reversions, and clean-up from the previous development cycle to create a stable base for the MQTT implementation. This ensures the application starts reliably with the pinned aioesphomeapi version.
2025-10-12 13:00:18 -07:00
imonlinux a435cc97e7 Implement MQTT for Advanced LVA Controls
Includes various compatibility fixes, reversions, and clean-up from the previous development cycle to create a stable base for the MQTT implementation. This ensures the application starts reliably with the pinned aioesphomeapi version.
2025-10-12 12:59:42 -07:00
imonlinux 402a6d1855 Implement MQTT for Advanced LVA Controls
Adds a handler for the VOICE_ASSISTANT_ERROR event, publishing a voice_error event to the EventBus so the LedController can provide visual feedback.

Fixes a race condition where the "Responding" LED effect was being cancelled prematurely, ensuring it now plays for the full duration of the TTS audio.
2025-10-12 12:58:24 -07:00
imonlinux e0bef20398 Implement MQTT for Advanced LVA Controls
Adds command-line arguments (--mqtt-host, --mqtt-port, etc., and --num-leds) to configure the MQTT connection and initial LED setup.

Instantiates and starts the MqttController on application startup if an MQTT host is provided.

Includes the MicMuteHandler class, which listens for mute commands, updates the global mic_muted state, and clears the audio queue on unmute to prevent processing stale audio.

Updates the process_audio loop to respect the mic_muted flag.
2025-10-12 12:57:11 -07:00
imonlinux 53b8fc4da9 Implement MQTT for Advanced LVA Controls
Refactored for Full Configurability: The controller has been re-architected to remove all hard-coded effects and colors.

Central Configuration: It now uses a central configs dictionary to store the effect, color, and brightness settings for each voice assistant state (idle, listening, etc.).

Dynamic State Management: Subscribes to new set_<state>_effect and set_<state>_color events from the event bus to update its configuration in real-time.

Applies Custom Effects: The main voice event handlers (voice_stt_start, voice_stt_end, etc.) have been simplified to look up the user's chosen configuration and apply it.

New Animations: Implements a full suite of animations (Slow/Medium/Fast Pulse, Slow/Medium/Fast Blink, Spin) to be used by the effect selectors.
2025-10-12 12:56:26 -07:00
imonlinux 824ac111ff Implement MQTT for Advanced LVA Controls
Adds paho-mqtt as a core dependency to enable MQTT communication.

Pins aioesphomeapi==41.13.0 to ensure stability with the existing codebase and avoid unresolved library issues on some platforms.
2025-10-12 12:55:33 -07:00
imonlinux bad38a3ece Implement MQTT for Advanced LVA Controls
Introduces the MqttController, a new class that manages all communication with the MQTT broker.

On startup, it connects to the broker and publishes discovery configurations for all entities, automatically creating them in Home Assistant.

Subscribes to command topics to receive instructions from the HA interface.

Subscribes to state topics to read retained messages on startup, ensuring all user settings are persistent.

Acts as a bridge, translating incoming MQTT messages into internal EventBus events for other components to act upon.
2025-10-12 12:54:12 -07:00
imonlinux f90ecdcda3 MQTT Support 2025-10-12 10:33:11 -07:00
imonlinux 01c49d4888 MQTT Entity Support 2025-10-12 10:32:34 -07:00
imonlinux 515ce2c5b2 Merge pull request #24 from imonlinux/Revert_Mic_Mute
Revert mic mute
2025-10-12 10:18:22 -07:00
imonlinux 3fb4ee8066 Revert API Microphone Mute Switch 2025-10-12 10:12:40 -07:00
imonlinux 524ad02228 Revert API Microphone Mute Switch 2025-10-12 10:11:56 -07:00
imonlinux d071803257 Revert API Microphone Mute Switch 2025-10-12 10:11:22 -07:00
imonlinux 6868651823 Revert API Microphone Mute Switch 2025-10-12 10:09:45 -07:00
imonlinux 834a15beb9 Revert API Microphone Mute Switch 2025-10-12 10:08:43 -07:00
imonlinux e78675aec2 Update README.md
Microphone mute switch bug!
2025-10-11 22:20:14 -07:00
imonlinux ccf5af8875 Update install_pipewire.md
Clean up during testing.
2025-10-11 20:07:41 -07:00
imonlinux 13c64687fe Update install_pulseaudio.md
Cleanup and fixes during testing.
2025-10-11 20:05:35 -07:00
imonlinux 82290688e2 Clean up typos and errors. 2025-10-11 20:00:29 -07:00
imonlinux bb4556a2ec Fix some typos and errors 2025-10-11 19:55:27 -07:00
imonlinux 98c8585ae3 Microphone Mute Button Bug
Bug fix to eliminate "pending" wake word detections while the mic was muted.
2025-10-11 19:34:14 -07:00
imonlinux aecf118983 Merge pull request #23 from imonlinux/Cleanup_Service_Files
Cleanup service files
2025-10-11 18:36:31 -07:00
imonlinux 63862487fb Rename user-pa-linux-voice-assistant.service.service to user-pa-linux-voice-assistant.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:34:32 -07:00
imonlinux 3d07872f49 Rename user-pw-linux-voice-assistant.service.service.service to user-pw-linux-voice-assistant.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:34:11 -07:00
imonlinux ca34354948 Rename user-pw-mww-linux-voice-assistant.service.service.service to user-pw-linux-voice-assistant.service.service.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:33:39 -07:00
imonlinux 6a4163d32a Update user-pw-mww-linux-voice-assistant.service.service.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:32:35 -07:00
imonlinux 085e944a85 Update and rename user-pa-mww-linux-voice-assistant.service.service to user-pa-linux-voice-assistant.service.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:30:48 -07:00
imonlinux eda9ac7d0d Update user-linux-voice-assistant.service
Clean-up for user-mode systemd service unit files and refactored code base from Release v1.0.0
2025-10-11 18:27:34 -07:00
imonlinux b3a853b94b Delete service/user-pw-oww-linux-voice-assistant.service.service
wyoming-openwakeword dependent service not required with Release v1.0.0
2025-10-11 18:24:07 -07:00