Voice Wake (Globale Wake Words)

OpenClaw behandelt Wake Words als eine einzige globale Liste, die vom Gateway verwaltet wird.

  • Es gibt keine individuellen Wake Words pro Node.
  • Jede Node/App-UI kann die Liste bearbeiten; Änderungen werden vom Gateway gespeichert und an alle verteilt.
  • Jedes Gerät behält seinen eigenen Voice Wake aktiviert/deaktiviert-Schalter (lokale UX + Berechtigungen unterscheiden sich).

Speicherort (Gateway-Host)

Wake Words werden auf dem Gateway-Rechner gespeichert unter:

  • ~/.openclaw/settings/voicewake.json

Struktur:

{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

Protokoll

Methoden

  • voicewake.get{ triggers: string[] }
  • voicewake.set mit Parametern { triggers: string[] }{ triggers: string[] }

Hinweise:

  • Triggers werden normalisiert (getrimmt, leere Einträge entfernt). Leere Listen fallen auf Standardwerte zurück.
  • Limits werden aus Sicherheitsgründen durchgesetzt (Anzahl-/Längenbegrenzungen).

Events

  • voicewake.changed Payload { triggers: string[] }

Wer erhält es:

  • Alle WebSocket-Clients (macOS-App, WebChat, etc.)
  • Alle verbundenen Nodes (iOS/Android), und auch beim Node-Connect als initialer “aktueller Status”-Push.

Client-Verhalten

macOS-App

  • Nutzt die globale Liste, um VoiceWakeRuntime-Triggers zu steuern.
  • Das Bearbeiten von “Trigger words” in den Voice Wake-Einstellungen ruft voicewake.set auf und verlässt sich dann auf den Broadcast, um andere Clients synchron zu halten.

iOS-Node

  • Nutzt die globale Liste für die VoiceWakeManager-Trigger-Erkennung.
  • Das Bearbeiten von Wake Words in den Einstellungen ruft voicewake.set auf (über das Gateway WS) und hält auch die lokale Wake-Word-Erkennung responsiv.

Android-Node

  • Bietet einen Wake Words-Editor in den Einstellungen.
  • Ruft voicewake.set über das Gateway WS auf, sodass Änderungen überall synchronisiert werden.