Android-App (Node)
Support-Übersicht
- Rolle: Companion-Node-App (Android hostet das Gateway nicht).
- Gateway erforderlich: ja (auf macOS, Linux oder Windows via WSL2 ausführen).
- Installation: Erste Schritte + Pairing.
- Gateway: Runbook + Konfiguration.
- Protokolle: Gateway-Protokoll (Nodes + Control Plane).
Systemsteuerung
Die Systemsteuerung (launchd/systemd) befindet sich auf dem Gateway-Host. Siehe Gateway.Verbindungs-Runbook
Android-Node-App ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android verbindet sich direkt mit dem Gateway-WebSocket (Standardws://<host>:18789) und verwendet das vom Gateway verwaltete Pairing.
Voraussetzungen
- Sie können das Gateway auf der „Master“-Maschine ausführen.
- Das Android-Gerät/der Emulator kann den Gateway-WebSocket erreichen:
- Gleiches LAN mit mDNS/NSD, oder
- Gleiches Tailscale-Tailnet mit Wide-Area Bonjour / unicast DNS-SD (siehe unten), oder
- Manueller Gateway-Host/-Port (Fallback)
- Sie können die CLI (
openclaw) auf der Gateway-Maschine ausführen (oder per SSH).
1. Gateway starten
listening on ws://0.0.0.0:18789
- Setzen Sie
gateway.bind: "tailnet"in~/.openclaw/openclaw.jsonauf dem Gateway-Host. - Starten Sie das Gateway / die macOS-Menüleisten-App neu.
2. Discovery überprüfen (optional)
Von der Gateway-Maschine:Tailnet-(Wien ⇄ London)-Discovery via unicast DNS-SD
Android-NSD/mDNS-Discovery funktioniert nicht netzwerkübergreifend. Wenn sich Ihr Android-Node und das Gateway in unterschiedlichen Netzwerken befinden, aber über Tailscale verbunden sind, verwenden Sie stattdessen Wide-Area Bonjour / unicast DNS-SD:- Richten Sie auf dem Gateway-Host eine DNS-SD-Zone (Beispiel
openclaw.internal.) ein und veröffentlichen Sie_openclaw-gw._tcp-Records. - Konfigurieren Sie Tailscale Split DNS für Ihre gewählte Domain, die auf diesen DNS-Server zeigt.
3. Von Android verbinden
In der Android-App:- Die App hält ihre Gateway-Verbindung über einen Foreground-Service (persistente Benachrichtigung) aufrecht.
- Öffnen Sie Settings.
- Wählen Sie unter Discovered Gateways Ihr Gateway aus und tippen Sie auf Connect.
- Wenn mDNS blockiert ist, verwenden Sie Advanced → Manual Gateway (Host + Port) und Connect (Manual).
- Manueller Endpunkt (falls aktiviert), andernfalls
- Das zuletzt entdeckte Gateway (Best-Effort).
4. Pairing freigeben (CLI)
Auf der Gateway-Maschine:5. Prüfen, ob der Node verbunden ist
-
Über den Node-Status:
-
Über das Gateway:
6. Chat + Verlauf
Das Chat-Panel des Android-Nodes verwendet den primären Sitzungsschlüssel des Gateways (main), sodass Verlauf und Antworten mit WebChat und anderen Clients geteilt werden:
- Verlauf:
chat.history - Senden:
chat.send - Push-Updates (Best-Effort):
chat.subscribe→event:"chat"
7. Canvas + Kamera
Gateway Canvas Host (empfohlen für Webinhalte)
Wenn der Node echtes HTML/CSS/JS anzeigen soll, das der Agent auf der Festplatte bearbeiten kann, verweisen Sie den Node auf den Gateway-Canvas-Host. Hinweis: Nodes laden Canvas vom Gateway-HTTP-Server (derselbe Port wiegateway.port, Standard 18789).
-
Erstellen Sie
~/.openclaw/workspace/canvas/index.htmlauf dem Gateway-Host. - Navigieren Sie den Node dorthin (LAN):
.local, z. B. http://<gateway-magicdns>:18793/__openclaw__/canvas/.
Dieser Server injiziert einen Live-Reload-Client in HTML und lädt bei Dateiänderungen neu.
Der A2UI-Host befindet sich unter http://<gateway-host>:18793/__openclaw__/a2ui/.
Canvas-Befehle (nur Foreground):
canvas.eval,canvas.snapshot,canvas.navigate(verwenden Sie{"url":""}oder{"url":"/"}, um zur Standard-Scaffold zurückzukehren).canvas.snapshotgibt{ format, base64 }zurück (Standardformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLLegacy-Alias)
camera.snap(jpg)camera.clip(mp4)