Android App (Node)¶
Snapshotni qo‘llab-quvvatlash¶
- Rol: hamroh tugun ilovasi (Android Gateway’ni xost qilmaydi).
- Gateway talab qilinadi: ha (uni macOS, Linux yoki Windows’da WSL2 orqali ishga tushiring).
- O‘rnatish: Getting Started + Pairing.
- Gateway: Yo‘riqnoma + Konfiguratsiya.
- Protokollar: Gateway protocol (tugunlar + boshqaruv tekisligi).
Tizim boshqaruvi¶
Tizim boshqaruvi (launchd/systemd) Gateway xostida joylashgan. Qarang: Gateway.
Ulanish bo‘yicha Runbook¶
Android tugun ilovasi ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway
Android to‘g‘ridan-to‘g‘ri Gateway WebSocket’iga ulanadi (standart ws://<host>:18789) va Gateway’ga tegishli pairing’dan foydalanadi.
Talablar¶
- Gateway’ni “master” mashinada ishga tushirishingiz mumkin.
- Android qurilma/emulyator gateway WebSocket’iga yetib bora olishi kerak:
- mDNS/NSD bilan bir xil LAN’da, yoki
- Wide-Area Bonjour / unicast DNS-SD’dan foydalangan holda bir xil Tailscale tailnet’da (quyida qarang), yoki
- Gateway xosti/portini qo‘lda kiritish (zaxira usul)
- CLI’ni (
openclaw) gateway mashinasida (yoki SSH orqali) ishga tushira olishingiz mumkin.
1. Gateway’ni ishga tushiring¶
openclaw gateway --port 18789 --verbose
Loglarda quyidagiga o‘xshash yozuvni ko‘rganingizni tasdiqlang:
listening on ws://0.0.0.0:18789
Faqat tailnet uchun sozlamalar (Vienna ⇄ London uchun tavsiya etiladi) da gateway’ni tailnet IP’iga bog‘lang:
- Gateway xostidagi
~/.openclaw/openclaw.jsonfaylidagateway.bind: "tailnet"ni o‘rnating. - Gateway’ni / macOS menyu paneli ilovasini qayta ishga tushiring.
2. Discovery’ni tekshiring (ixtiyoriy)¶
Gateway mashinasidan:
dns-sd -B _openclaw-gw._tcp local.
Qo‘shimcha nosozliklarni aniqlash eslatmalari: Bonjour.
Tailnet (Vienna ⇄ London) orqali unicast DNS-SD yordamida discovery¶
Android NSD/mDNS discovery tarmoqlar orasidan o‘tmaydi. Agar Android tuguningiz va gateway turli tarmoqlarda bo‘lsa, lekin Tailscale orqali ulangan bo‘lsa, Wide-Area Bonjour / unicast DNS-SD’dan foydalaning:
- Gateway xostida DNS-SD zonani (masalan,
openclaw.internal.) sozlang va_openclaw-gw._tcpyozuvlarini e’lon qiling. - Tanlangan domen uchun Tailscale split DNS’ni sozlab, uni o‘sha DNS serverga yo‘naltiring.
Batafsil ma’lumotlar va CoreDNS konfiguratsiyasi namunasi: Bonjour.
3. Android’dan ulaning¶
Android ilovasida:
- Ilova gateway ulanishini foreground service (doimiy bildirishnoma) orqali faol holda saqlaydi.
- Settings’ni oching.
- Discovered Gateways bo‘limida gateway’ingizni tanlab, Connect ni bosing.
- Agar mDNS bloklangan bo‘lsa, Advanced → Manual Gateway (xost + port) dan foydalanib, Connect (Manual) ni bosing.
Birinchi muvaffaqiyatli pairing’dan so‘ng, Android ishga tushganda avtomatik qayta ulanadi:
- Agar yoqilgan bo‘lsa, qo‘lda kiritilgan endpoint, aks holda
- Oxirgi topilgan gateway (imkon qadar).
4. Pairing’ni tasdiqlang (CLI)¶
Gateway mashinasida:
openclaw nodes pending
openclaw nodes approve <requestId>
Pairing tafsilotlari: Gateway pairing.
5. Tugun ulanganini tekshiring¶
-
- Via tugunlar holati:
bash
2. openclaw tugunlar holati
-
- Via Gateway:
bash
4. openclaw gateway call node.list --params "{}"
5. 6. Chat + tarix¶
- Android tugunining Chat oynasi gateway’ning asosiy sessiya kaliti (
main) dan foydalanadi, shuning uchun tarix va javoblar WebChat va boshqa mijozlar bilan bo‘lishiladi:
-
- Tarix:
chat.history
- Tarix:
-
- Yuborish:
chat.send
- Yuborish:
-
- Push yangilanishlar (best-effort):
chat.subscribe→event:"chat"
- Push yangilanishlar (best-effort):
10. 7. Canvas + kamera¶
11. Gateway Canvas Host (veb kontent uchun tavsiya etiladi)¶
-
Agar tugun agent diskda tahrirlashi mumkin bo‘lgan haqiqiy HTML/CSS/JS ni ko‘rsatsin desangiz, tugunni Gateway canvas host’ga yo‘naltiring.
-
Eslatma: tugunlar
canvasHost.port(standart18793) dagi mustaqil canvas host’dan foydalanadi. -
- Gateway host’da
~/.openclaw/workspace/canvas/index.htmlyarating.
- Gateway host’da
-
- Tugunni unga yo‘naltiring (LAN):
16. openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18793/__openclaw__/canvas/"}'
-
Tailnet (ixtiyoriy): agar ikkala qurilma ham Tailscale’da bo‘lsa,
.localo‘rniga MagicDNS nomi yoki tailnet IP’dan foydalaning, masalan:http://<gateway-magicdns>:18793/__openclaw__/canvas/. -
Bu server HTML ichiga live-reload mijozini qo‘shadi va fayllar o‘zgarganda qayta yuklaydi.
-
A2UI host
http://<gateway-host>:18793/__openclaw__/a2ui/da joylashgan. -
Canvas buyruqlari (faqat oldingi rejim):
-
canvas.eval,canvas.snapshot,canvas.navigate(standart scaffold’ga qaytish uchun{"url":""}yoki{"url":"/"}dan foydalaning). 22.canvas.snapshot{ format, base64 }ni qaytaradi (standartformat="jpeg").
-
- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLeski alias)
- A2UI:
- Kamera buyruqlari (faqat oldingi rejim; ruxsat bilan cheklangan):
-
camera.snap(jpg)
-
camera.clip(mp4)
- Parametrlar va CLI yordamchilari uchun Camera node ga qarang.