## 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
92 lines
4.3 KiB
YAML
92 lines
4.3 KiB
YAML
# Home Assistant Configuration for OpenClaw Integration
|
|
# Add these sections to your configuration.yaml
|
|
|
|
# ─── Shell Command Integration ────────────────────────────────────────────────
|
|
# This allows HA to call OpenClaw via shell commands
|
|
shell_command:
|
|
# Send a message to OpenClaw and get response
|
|
openclaw_chat: '/Users/aodhan/gitea/homeai/homeai-agent/skills/home-assistant/openclaw-bridge.sh "{{ message }}"'
|
|
|
|
# ─── REST Command (Alternative) ───────────────────────────────────────────────
|
|
# If OpenClaw exposes an HTTP API in the future
|
|
rest_command:
|
|
openclaw_chat:
|
|
url: "http://localhost:8080/api/agent/message"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {{ token }}"
|
|
content_type: "application/json"
|
|
payload: '{"message": "{{ message }}", "agent": "main"}'
|
|
|
|
# ─── Command Line Sensor ──────────────────────────────────────────────────────
|
|
# Execute OpenClaw and return the response as a sensor
|
|
command_line:
|
|
- sensor:
|
|
name: "OpenClaw Response"
|
|
unique_id: openclaw_response
|
|
command: "/Users/aodhan/gitea/homeai/homeai-agent/skills/home-assistant/openclaw-bridge.sh '{{ states(\"input_text.openclaw_query\") }}'"
|
|
value_template: "{{ value_json.response }}"
|
|
scan_interval: 86400 # Only update when triggered
|
|
|
|
# ─── Input Text for Query ─────────────────────────────────────────────────────
|
|
input_text:
|
|
openclaw_query:
|
|
name: OpenClaw Query
|
|
initial: ""
|
|
max: 255
|
|
|
|
# ─── Conversation Agent Integration ────────────────────────────────────────────
|
|
# Custom conversation agent using OpenClaw
|
|
# This requires the custom conversation agent below
|
|
|
|
# ─── Intent Script ─────────────────────────────────────────────────────────────
|
|
intent_script:
|
|
# Handle conversation intents
|
|
OpenClawConversation:
|
|
speech:
|
|
text: "{{ response }}"
|
|
action:
|
|
- service: shell_command.openclaw_chat
|
|
data:
|
|
message: "{{ text }}"
|
|
response_variable: openclaw_result
|
|
- set:
|
|
response: "{{ openclaw_result }}"
|
|
|
|
# ─── Automation: Voice Pipeline with OpenClaw ─────────────────────────────────
|
|
automation:
|
|
- alias: "Voice Command via OpenClaw"
|
|
trigger:
|
|
- platform: conversation
|
|
command:
|
|
- "ask jarvis *"
|
|
action:
|
|
- service: shell_command.openclaw_chat
|
|
data:
|
|
message: "{{ trigger.slots.command }}"
|
|
response_variable: openclaw_response
|
|
|
|
- service: tts.speak
|
|
data:
|
|
media_player_entity_id: media_player.living_room_speaker
|
|
message: "{{ openclaw_response }}"
|
|
|
|
# ─── Wyoming Protocol Configuration ───────────────────────────────────────────
|
|
# Configure in HA UI:
|
|
# 1. Settings → Integrations → Add Integration → Wyoming Protocol
|
|
# 2. Add STT: host=10.0.0.199, port=10300
|
|
# 3. Add TTS: host=10.0.0.199, port=10301
|
|
# 4. Add Satellite: host=10.0.0.199, port=10700
|
|
|
|
# ─── Voice Assistant Pipeline ─────────────────────────────────────────────────
|
|
# Configure in HA UI:
|
|
# 1. Settings → Voice Assistants → Add Pipeline
|
|
# 2. Name: "HomeAI with OpenClaw"
|
|
# 3. Speech-to-Text: Wyoming (localhost:10300)
|
|
# 4. Conversation Agent: Use the automation above OR Home Assistant
|
|
# 5. Text-to-Speech: Wyoming (localhost:10301)
|
|
|
|
# ─── Custom Conversation Agent (Advanced) ─────────────────────────────────────
|
|
# Create a custom component in custom_components/openclaw_conversation/
|
|
# See: custom_components/openclaw_conversation/__init__.py
|