# Servicio de IoT

El **servicio IoT** (Internet de las cosas) de la CloudBox desempeña un papel clave en la supervisión y gestión remota del sistema. Este servicio permite a la CloudBox enviar continuamente su **estado** y **parámetros de configuración** a la nube, lo que proporciona visibilidad en tiempo real del estado y el funcionamiento del sistema. Además, el servicio IoT permite a los usuarios realizar operaciones remotas como **INICIAR**, **DETENER** y **APAGAR** a través del software **Race Manager (RRM) RUFUS** o de su cuenta en la nube. Sin embargo, es importante tener en cuenta que la **información de paso** no se transmite a través del servicio IoT, sino que se envía a través de **HTTP** al **servicio de ingesta de pasos**.

En este artículo, exploraremos cómo funciona el servicio de IoT, qué datos se transmiten y los diversos comandos remotos que se pueden ejecutar.

## Cómo funciona el servicio de IoT

La CloudBox utiliza el servicio IoT para comunicarse continuamente con la nube. La función principal del servicio IoT es mantener el **estado** y la **configuración** de la CloudBox actualizados en la nube, lo que garantiza que los administradores siempre puedan ver el estado actual del dispositivo.

### Características principales del servicio IoT:

* **Transmisión de estado**: cada **60 segundos**, la CloudBox envía su estado completo a la nube, incluidos los detalles sobre el nivel de la batería del sistema, la temperatura de la CPU, la información del GPS y otros parámetros de configuración importantes.
* **Control remoto**: a través del **RRM** o la cuenta en la nube del usuario, el servicio IoT permite la ejecución remota de comandos críticos como **INICIAR**, **DETENER** y **APAGAR**.
* **Estado del cliente IoT**: El cliente IoT en CloudBox gestiona la conexión con la nube. El estado actual de la conexión puede ser uno de los siguientes:
* **Conectado al servidor IoT**: CloudBox está conectado correctamente al servidor IoT y las actualizaciones de estado se transmiten regularmente.
* **Desconectado del servidor IoT**: CloudBox ha perdido la conexión con el servidor IoT y ya no transmite actualizaciones de estado.
* **Error de conexión al servidor IoT**: CloudBox encontró un error al intentar conectarse al servidor IoT. Esto podría deberse a problemas de conectividad a Internet.
* **Información de pases**: Es importante tener en cuenta que **los pases no se envían a través de IoT**. Los datos de los pases se transmiten a la nube a través de **HTTP** al **Servicio de ingesta de pases**.

## Comandos remotos a través del IoT

A través del **RRM** o la cuenta en la nube del usuario, el servicio IoT permite el control remoto de los comandos operativos clave. Esto es particularmente útil para gestionar la CloudBox a distancia, garantizando la flexibilidad y el control durante los eventos de carreras o cuando se trabaja en entornos distribuidos.

Los siguientes comandos se pueden ejecutar de forma remota a través del servicio de IoT:

1. **INICIAR**: Este comando inicia de forma remota una sesión de cronometraje en la CloudBox, lo que equivale a pulsar el botón **INICIAR** en la interfaz o emitir el comando TCP **INICIAR**. Una vez que la sesión comienza, el sistema empieza a rastrear y transmitir los datos de los pases.
2. **STOP**: Este comando detiene de forma remota una sesión de cronometraje activa, lo que le permite finalizar la sesión desde cualquier lugar, siempre que la CloudBox esté conectada a Internet. Este comando garantiza un final sin problemas para las sesiones de cronometraje de carreras sin necesidad de estar físicamente presente en el dispositivo.
3. **SHUTDOWN**: Este comando apaga el sistema CloudBox de forma segura. Es particularmente útil para conservar la batería o asegurar el dispositivo al final de un evento. El proceso **SHUTDOWN** asegura que todos los datos se guarden correctamente antes de apagar.

## Estado del servicio de IoT y solución de problemas

Para garantizar una comunicación adecuada entre la CloudBox y el servidor IoT, el sistema comprueba periódicamente el estado de la conexión. Si hay algún problema, el sistema notificará al usuario a través de la **interfaz de estado**.

**Mensajes de estado del cliente IoT:**

* **Conectado al servidor IoT**: este estado confirma que la CloudBox está conectada activamente al servidor IoT y que la transmisión de datos se produce cada 60 segundos.
* **Desconectado del servidor IoT**: este estado indica que la CloudBox ha perdido la conexión con el servidor IoT, posiblemente debido a un problema de red. Las actualizaciones de estado no se transmitirán hasta que se restablezca la conexión.
* **Error de conexión del servidor IoT**: La CloudBox encontró un problema al intentar conectarse al servidor IoT, normalmente debido a problemas de conectividad a Internet. En este caso, asegúrese de que el dispositivo tenga una conexión estable y solucione los problemas de configuración de la red si es necesario.

**Solución de problemas de conexión de IoT:**

* **Conectividad a Internet**: La razón más común de los errores de conexión del servidor IoT es la falta de acceso a Internet. Asegúrese de que la CloudBox esté conectada a una red WiFi confiable, a una conexión Ethernet o a 4G (cuando corresponda).
* **Reinicie la CloudBox**: Si no se puede restablecer la conexión IoT, intente reiniciar la CloudBox, lo que actualizará el sistema e intentará volver a conectarse al servidor IoT.

## IoT y sincronización en la nube

El servicio IoT desempeña un papel crucial para garantizar que el estado y la configuración de CloudBox estén siempre sincronizados con la nube. Esto es especialmente útil para eventos a gran escala o múltiples puntos de cronometraje distribuidos en diferentes ubicaciones, ya que permite a los oficiales de la carrera supervisar y gestionar todos los sistemas de cronometraje de forma remota.

* **Supervisión en tiempo real**: El servicio IoT permite la supervisión en tiempo real del estado operativo y de salud de la CloudBox. A través de la interfaz de la nube o RRM, los usuarios pueden ver métricas clave como los niveles de batería, la temperatura de la CPU y la ubicación GPS.
* **Control a través de la nube**: Todas las actualizaciones de estado transmitidas a través de IoT se pueden ver en la **cuenta en la nube** del usuario o a través de la **interfaz RRM**, lo que permite una coordinación perfecta entre múltiples dispositivos durante los eventos de carreras.

## Resumen

El **servicio IoT** en CloudBox proporciona comunicación continua con la nube, lo que garantiza que los usuarios puedan supervisar y controlar de forma remota su dispositivo. Al enviar actualizaciones completas del estado del sistema cada 60 segundos, el servicio IoT mantiene los datos operativos de CloudBox sincronizados con la nube, lo que permite supervisar el estado del dispositivo y ejecutar comandos remotos como **INICIAR**, **DETENER** y **APAGAR**.

Sin embargo, es importante recordar que **los datos de paso no se transmiten a través de IoT**, sino a través de HTTP al **servicio de ingesta de pasos**. Si la CloudBox encuentra algún problema de conexión, se notificará a los usuarios a través del **estado del cliente IoT**, lo que permitirá una rápida resolución de problemas. Al aprovechar el servicio IoT, los organizadores de eventos y los oficiales de carrera pueden mantener el control de sus sistemas de cronometraje desde cualquier lugar, lo que garantiza operaciones de cronometraje fluidas y exitosas.
