Aplicación Android (Nodo)
Snapshot de soporte
- Rol: aplicación de nodo complementario (Android no aloja el Gateway).
- Gateway requerido: sí (ejecútelo en macOS, Linux o Windows vía WSL2).
- Instalación: Primeros pasos + Emparejamiento.
- Gateway: Runbook + Configuración.
- Protocolos: Protocolo del Gateway (nodos + plano de control).
Control del sistema
El control del sistema (launchd/systemd) vive en el host del Gateway. Consulte Gateway.Runbook de conexión
Aplicación de nodo Android ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android se conecta directamente al WebSocket del Gateway (predeterminadows://<host>:18789) y utiliza el emparejamiento propiedad del Gateway.
Requisitos previos
- Puede ejecutar el Gateway en la máquina “maestra”.
- El dispositivo/emulador Android puede alcanzar el WebSocket del Gateway:
- Misma LAN con mDNS/NSD, o
- Mismo tailnet de Tailscale usando Wide-Area Bonjour / DNS-SD unicast (ver abajo), o
- Host/puerto del Gateway manual (alternativa)
- Puede ejecutar la CLI (
openclaw) en la máquina del Gateway (o vía SSH).
1. Iniciar el Gateway
listening on ws://0.0.0.0:18789
- Establezca
gateway.bind: "tailnet"en~/.openclaw/openclaw.jsonen el host del Gateway. - Reinicie el Gateway / la app de barra de menús de macOS.
2. Verificar el descubrimiento (opcional)
Desde la máquina del Gateway:Descubrimiento por tailnet (Viena ⇄ Londres) vía DNS-SD unicast
El descubrimiento NSD/mDNS de Android no cruza redes. Si su nodo Android y el Gateway están en redes diferentes pero conectados vía Tailscale, use Wide-Area Bonjour / DNS-SD unicast en su lugar:- Configure una zona DNS-SD (ejemplo
openclaw.internal.) en el host del Gateway y publique registros_openclaw-gw._tcp. - Configure DNS dividido de Tailscale para su dominio elegido apuntando a ese servidor DNS.
3. Conectar desde Android
En la app de Android:- La app mantiene viva su conexión al Gateway mediante un servicio en primer plano (notificación persistente).
- Abra Settings.
- En Discovered Gateways, seleccione su Gateway y pulse Connect.
- Si mDNS está bloqueado, use Advanced → Manual Gateway (host + puerto) y Connect (Manual).
- Al endpoint manual (si está habilitado); de lo contrario,
- Al último Gateway descubierto (mejor esfuerzo).
4. Aprobar el emparejamiento (CLI)
En la máquina del Gateway:5. Verificar que el nodo esté conectado
-
Estado de los nodos:
-
Vía Gateway:
6. Chat + historial
La hoja de Chat del nodo Android usa la clave de sesión primaria del Gateway (main), por lo que el historial y las respuestas se comparten con WebChat y otros clientes:
- Historial:
chat.history - Enviar:
chat.send - Actualizaciones push (mejor esfuerzo):
chat.subscribe→event:"chat"
7. Canvas + cámara
Host de Canvas del Gateway (recomendado para contenido web)
Si desea que el nodo muestre HTML/CSS/JS reales que el agente pueda editar en disco, apunte el nodo al host de Canvas del Gateway. Nota: los nodos cargan el lienzo desde el servidor HTTP de Gateway (mismo puerto quegateway.port, por defecto 18789).
-
Cree
~/.openclaw/workspace/canvas/index.htmlen el host del Gateway. - Navegue el nodo hacia él (LAN):
.local, por ejemplo http://<gateway-magicdns>:18793/__openclaw__/canvas/.
Este servidor inyecta un cliente de recarga en vivo en HTML y recarga ante cambios de archivos.
El host de A2UI vive en http://<gateway-host>:18793/__openclaw__/a2ui/.
Comandos de Canvas (solo en primer plano):
canvas.eval,canvas.snapshot,canvas.navigate(use{"url":""}o{"url":"/"}para volver al andamiaje predeterminado).canvas.snapshotdevuelve{ format, base64 }(predeterminadoformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLalias heredado)
camera.snap(jpg)camera.clip(mp4)