feat(phase-04): Wyoming Satellite integration + OpenClaw HA components

## Voice Pipeline (P3)
- Replace openWakeWord daemon with Wyoming Satellite approach
- Add Wyoming Satellite service on port 10700 for HA voice pipeline
- Update setup.sh with cross-platform sed compatibility (macOS/Linux)
- Add version field to Kokoro TTS voice info
- Update launchd service loader to use Wyoming Satellite

## Home Assistant Integration (P4)
- Add custom conversation agent component (openclaw_conversation)
  - Fix: Use IntentResponse instead of plain strings (HA API requirement)
  - Support both HTTP API and CLI fallback modes
  - Config flow for easy HA UI setup
- Add OpenClaw bridge scripts (Python + Bash)
- Add ha-ctl utility for HA entity control
  - Fix: Use context manager for token file reading
- Add HA configuration examples and documentation

## Infrastructure
- Add mem0 backup automation (launchd + script)
- Add n8n workflow templates (morning briefing, notification router)
- Add VS Code workspace configuration
- Reorganize model files into categorized folders:
  - lmstudio-community/
  - mlx-community/
  - bartowski/
  - mradermacher/

## Documentation
- Update PROJECT_PLAN.md with Wyoming Satellite architecture
- Update TODO.md with completed Wyoming integration tasks
- Add OPENCLAW_INTEGRATION.md for HA setup guide

## Testing
- Verified Wyoming services running (STT:10300, TTS:10301, Satellite:10700)
- Verified OpenClaw CLI accessibility
- Confirmed cross-platform compatibility fixes
This commit is contained in:
Aodhan Collins
2026-03-08 02:06:37 +00:00
parent 9eb5633115
commit 6a0bae2a0b
119 changed files with 780808 additions and 64 deletions

View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# Install OpenClaw Conversation custom component to Home Assistant
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
COMPONENT_NAME="openclaw_conversation"
# Detect Home Assistant config directory
if [[ -d "/config" ]]; then
HA_CONFIG="/config"
elif [[ -d "$HOME/.homeassistant" ]]; then
HA_CONFIG="$HOME/.homeassistant"
elif [[ -d "$HOME/homeassistant" ]]; then
HA_CONFIG="$HOME/homeassistant"
else
echo "Error: Could not find Home Assistant config directory"
echo "Please specify manually: ./install.sh /path/to/config"
exit 1
fi
# Allow override via command line
if [[ $# -ge 1 ]]; then
HA_CONFIG="$1"
fi
CUSTOM_COMPONENTS_DIR="$HA_CONFIG/custom_components"
TARGET_DIR="$CUSTOM_COMPONENTS_DIR/$COMPONENT_NAME"
echo "Installing OpenClaw Conversation custom component..."
echo " Source: $SCRIPT_DIR/$COMPONENT_NAME"
echo " Target: $TARGET_DIR"
echo ""
# Create custom_components directory if it doesn't exist
mkdir -p "$CUSTOM_COMPONENTS_DIR"
# Remove old installation if exists
if [[ -d "$TARGET_DIR" ]]; then
echo "Removing old installation..."
rm -rf "$TARGET_DIR"
fi
# Copy component files
cp -r "$SCRIPT_DIR/$COMPONENT_NAME" "$TARGET_DIR"
# Verify installation
if [[ -d "$TARGET_DIR" && -f "$TARGET_DIR/manifest.json" ]]; then
echo "✓ Installation successful!"
echo ""
echo "Next steps:"
echo " 1. Restart Home Assistant"
echo " 2. Go to Settings → Devices & Services → Add Integration"
echo " 3. Search for 'OpenClaw Conversation'"
echo " 4. Configure the settings (host: localhost, port: 8080)"
echo ""
echo " Or add to configuration.yaml:"
echo " openclaw_conversation:"
echo " openclaw_host: localhost"
echo " openclaw_port: 8080"
echo " agent_name: main"
echo " timeout: 30"
else
echo "✗ Installation failed"
exit 1
fi