> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fire.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Instalación en Android

> Corre el Agente Fire en la misma tablet Android que el KDS para que las comandas lleguen a una impresora térmica de la LAN.

Chrome en HTTPS no puede enviar bytes ESC/POS a una impresora por sí solo. Si la tablet no tiene un puente local, el cocinero envía el ticket y **no imprime nada** — el cliente espera en el mostrador sin comprobante.

Esta página es para quien configura **Fire Agent Android** (`Agent 1.0.1`, paquete `com.firepos.fireagent`) en la tablet del KDS. Los PCs Windows siguen usando [Instalación en Windows](/es/manuals/fire-agent/installation).

<Note>
  **Lo mínimo que hay que saber**

  * Hay dos cadenas independientes: **KDS ↔ agente** (DNS + WSS + token) y **agente ↔ impresora** (TCP en LAN, casi siempre puerto 9100).
  * El **nombre** que guardas en la app es el que eliges en fire-kds. Deben coincidir exactamente.
  * En cocinas HTTPS, `kds-agent.fire.rest` debe resolver a **`127.0.0.1` en esa tablet**. Si el DNS lo manda a internet, la impresión no arranca.
</Note>

## El camino simple

<Steps>
  <Step title="Instala el APK">
    Instala **`Agente-1.0.1.apk`** en la tablet. Abre la app y pon **Language** en el idioma que uses (las etiquetas de esta página están en inglés de la UI).
  </Step>

  <Step title="Arranca el agente">
    En **Home**, pulsa **Start agent**. El distintivo debe decir **LIVE**. Acepta notificaciones si Android lo pide (hace falta para el servicio en primer plano).
  </Step>

  <Step title="Agrega la impresora">
    Abre **Printers**. Completa **Name in KDS**, **IP address** y **TCP port** (casi siempre `9100`). Pulsa **Save printer** y luego **Test print**.
  </Step>

  <Step title="Arma el mismo nombre en el KDS">
    En fire-kds, abre **Printer for this screen** y elige ese nombre exacto. Activa **Print on bump** en la tienda para que un envío saque papel. Ver [Periféricos, impresión y validación](/es/manuals/kds/peripherals-printing).
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/firepos/JUO9jSaQ-nNdc1h3/images/manuals/fire-agent/android/01-home-off.png?fit=max&auto=format&n=JUO9jSaQ-nNdc1h3&q=85&s=3b6034748abe50b63bdacc31b5d8e683" alt="Pestaña Home del Agente Fire Android con el agente detenido y Start agent" width="1280" height="800" data-path="images/manuals/fire-agent/android/01-home-off.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/JUO9jSaQ-nNdc1h3/images/manuals/fire-agent/android/02-home-live.png?fit=max&auto=format&n=JUO9jSaQ-nNdc1h3&q=85&s=411f1bcd562fbb53c2b0c53f1e614384" alt="Pestaña Home del Agente Fire Android en LIVE con la línea de estado ws y wss" width="1280" height="800" data-path="images/manuals/fire-agent/android/02-home-live.png" />
</Frame>

<Tip>
  Si el **Test print** ya sale por la impresora de cocina y el KDS muestra el agente en línea, puedes parar aquí.
</Tip>

## Home, Diagnostics, Printers, Settings

| Pestaña         | Qué haces                                                                                                       |
| --------------- | --------------------------------------------------------------------------------------------------------------- |
| **Home**        | **Start agent** / **Pause agent**. El estado muestra `ws://127.0.0.1:9100` y `wss://kds-agent.fire.rest:9101`.  |
| **Diagnostics** | **Help center**. Revisa **KDS** (agente, DNS, WSS, token) e **Printers** (TCP a cada IP guardada) por separado. |
| **Printers**    | Agregar, **Test print**, eliminar y, si quieres, **Find printers on network**.                                  |
| **Settings**    | Idioma (ES / EN / PT). **Auth token** y **WebSocket port** son solo para soporte.                               |

<Frame>
  <img src="https://mintcdn.com/firepos/JUO9jSaQ-nNdc1h3/images/manuals/fire-agent/android/03-diagnostics-ok.png?fit=max&auto=format&n=JUO9jSaQ-nNdc1h3&q=85&s=2b5c9e920effa57f9b25bbf4982e3e5d" alt="Diagnostics del Agente Fire Android con KDS e impresoras en verde" width="1280" height="800" data-path="images/manuals/fire-agent/android/03-diagnostics-ok.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/JUO9jSaQ-nNdc1h3/images/manuals/fire-agent/android/04-printers-list.png?fit=max&auto=format&n=JUO9jSaQ-nNdc1h3&q=85&s=1e7e4dab4ee478bad44b1cfdee685de6" alt="Pestaña Printers del Agente Fire Android con una impresora LAN y Test print" width="1280" height="800" data-path="images/manuals/fire-agent/android/04-printers-list.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/JUO9jSaQ-nNdc1h3/images/manuals/fire-agent/android/05-settings-connection.png?fit=max&auto=format&n=JUO9jSaQ-nNdc1h3&q=85&s=518c19e0b54127e69f9756d18477c21f" alt="Settings del Agente Fire Android con Auth token y WebSocket port" width="1280" height="800" data-path="images/manuals/fire-agent/android/05-settings-connection.png" />
</Frame>

El agente solo escucha en **`127.0.0.1`**. fire-kds en Android prueba primero `wss://kds-agent.fire.rest:9101` y, si falla, cae a la URL de Windows. Ver [Herramientas web del agente](/es/manuals/fire-agent/web-tools).

## Recetas

<AccordionGroup>
  <Accordion title="Una tablet, una impresora de cocina">
    1. Arranca el agente hasta **LIVE**.
    2. Guarda una impresora llamada `Kitchen` con la IP de LAN y puerto `9100`.
    3. **Test print**.
    4. En fire-kds elige `Kitchen` y activa **Print on bump**.
  </Accordion>

  <Accordion title="Diagnostics pone KDS en rojo e impresoras en verde">
    1. Quédate en **Diagnostics → KDS**.
    2. Si falla **DNS**, TI debe apuntar `kds-agent.fire.rest` a `127.0.0.1` en esta tablet.
    3. Si falla el token, iguala **Auth token** con `NEXT_PUBLIC_FIRE_AGENT_TOKEN` en fire-kds.
    4. No toques la impresora: la parte 2 ya está sana.
  </Accordion>

  <Accordion title="Diagnostics pone KDS en verde e impresoras en rojo">
    1. Confirma que la impresora está en el **mismo Wi‑Fi / VLAN**.
    2. Revisa IP y puerto `9100` (algunos equipos usan 9102).
    3. Corre **Test print** desde **Printers**.
    4. El KDS puede conectar y aun así no imprimir si el TCP a la impresora falla.
  </Accordion>

  <Accordion title="Rotar el token sin un APK nuevo">
    1. Abre **Settings → Advanced: KDS connection**.
    2. Pega el **Auth token** nuevo.
    3. **Save settings** (el agente reinicia si estaba **LIVE**).
    4. Actualiza el mismo token en el deploy de fire-kds de esa tablet.
  </Accordion>
</AccordionGroup>

## Ejemplo con números

| Chequeo             | Sano                                | Roto                                                                |
| ------------------- | ----------------------------------- | ------------------------------------------------------------------- |
| Distintivo Home     | **LIVE**                            | **OFF** — el envío nunca llega al agente                            |
| Nombre de impresora | `Kitchen` en la app y en el KDS     | `kitchen` frente a `Kitchen` — el KDS reporta impresora desconocida |
| DNS                 | `kds-agent.fire.rest` → `127.0.0.1` | IP pública — el KDS en HTTPS no abre WSS                            |
| Test print          | Sale papel                          | Parte 2 en rojo — VLAN / IP / puerto                                |

## Errores que salen caros

<Warning>
  **DNS público para `kds-agent.fire.rest`.** El navegador debe hablar con el agente en esta tablet. Si el nombre sale del dispositivo, los tickets fiscal y comanda no imprimen y el envío igual se ve exitoso.
</Warning>

<Warning>
  **Token distinto.** **Auth token** debe ser igual a `NEXT_PUBLIC_FIRE_AGENT_TOKEN` de fire-kds. Si no, el KDS muestra el agente fuera de línea o `Unauthorized`.
</Warning>

<Warning>
  **Nombre en el agente ≠ nombre en el KDS.** La regla de tienda puede estar bien y aun así no imprimir. Usa la misma cadena, con espacios y tildes.
</Warning>

<Warning>
  **Impresora en otra red.** El agente envía **TCP RAW** a la IP que escribiste. Un Wi‑Fi de invitados o un VLAN bloqueado se ve como impresora muerta.
</Warning>

## Glosario

| Término         | Significado                                                                     |
| --------------- | ------------------------------------------------------------------------------- |
| **LIVE**        | El servicio en primer plano está arriba. El KDS puede abrir el WebSocket local. |
| **WSS 9101**    | Socket TLS para fire-kds en HTTPS (`wss://kds-agent.fire.rest:9101`).           |
| **WS 9100**     | Socket plano para HTTP / desarrollo local.                                      |
| **Name in KDS** | Etiqueta que eliges en **Printer for this screen**.                             |
| **TCP 9100**    | Puerto RAW/ESC-POS de la impresora térmica (no el del agente).                  |

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿También lo instalo en Windows?">
    No. Windows usa el [instalador de Windows](/es/manuals/fire-agent/installation). Este APK es solo para el dispositivo Android del KDS.
  </Accordion>

  <Accordion title="¿Hay un código de emparejamiento?">
    No. Instalas la app, la arrancas y registras impresoras. Los códigos de emparejamiento son para [dispositivos de cocina en fire-kds](/es/manuals/kds/device-pairing), no para este agente.
  </Accordion>

  <Accordion title="¿Por qué dos puertos?">
    **9100** es WS plano. **9101** es WSS con el certificado incluido para que el KDS en HTTPS conecte. El puerto de la impresora suele ser también 9100: es otro salto.
  </Accordion>

  <Accordion title="¿Arranca después de reiniciar?">
    Sí por defecto, después de abrir la app al menos una vez tras instalar (Android 12+). Si **Home** muestra **OFF**, pulsa **Start agent**.
  </Accordion>
</AccordionGroup>

## Lo que esta página no hace

* No elige **Comanda** frente a **Fiscal**: eso es **Print on bump** de la tienda.
* No reemplaza las credenciales Fire para los *datos* fiscales. El agente solo lleva bytes al papel.
* No expone una API pública de impresión. El tráfico se queda en `127.0.0.1`.
