# Configurando el servidor MQTT

Este script permite suscribirse a un tópico MQTT, recibir mensajes y almacenarlos en una base de datos SQLite. A continuación se describen los pasos para configurarlo y ejecutarlo correctamente.

##### **1. Configuración del archivo de configuración**

Antes de ejecutar el script, se debe crear un archivo de configuración en formato **.ini.** Este archivo contiene los parámetros necesarios para la conexión al broker MQTT, la base de datos y la configuración de logs. Un ejemplo de archivo de configuración es el siguiente:

```
[DEFAULT]

;;topic
topic = testtopic/#

;; connection
host = test.mosquitto.org
port = 1883
;; protocol supports:  tcp, websockets, unix
; protocol = websockets 
; user = ro
; password = readonly
; ssl = 0
; trust_ssl = 1

;; Database
dblocation = /opt/pandora/pandora_iot_server/db
dbname = pandora_iot.db
; data_cleaning_interval = 300  
; data_cleaning_period = 86400  

;; Logs
log_name = pandora_iot.log   
log_location = /var/log/pandora/
; log_level = debug              
; max_log_bytes = 50_000_000         
; log_rotation_count = 3
```

#### Parámetros clave:

- **`topic`**: Define el tópico MQTT al que se suscribirá el script (por ejemplo, `testtopic/#`).
- **`host` :** Especifican la dirección del broker MQTT.
- **`port`**: Especifican el puerto del broker MQTT.
- **`protocol`**: El protocolo a usar para la conexión MQTT (por ejemplo, `tcp` o `websockets`).
- **`ssl`**: Habilita o deshabilita la conexión SSL. (0 para deshabilitar, 1 para habilitar).
- **`trust_ssl`**: Controla si se debe confiar en los certificados SSL del broker.
- **`dblocation`**: Directorio donde se almacenará la base de datos SQLite.
- **`dbname`**: Nombre de la base de datos SQLite.
- **data\_cleaning\_interval**: Intervalo de tiempo (en segundos) entre cada ejecución del proceso de limpieza de datos.
- **data\_cleaning\_period**: Tiempo (en segundos) para eliminar datos antiguos de la base de datos.
- **log\_name**: Nombre del archivo donde se almacenarán los logs.
- **`log_location`**: Directorio donde se almacenarán los archivos de log.
- **`log_level`**: Nivel de detalle de los logs (por ejemplo, `debug`).
- **max\_log\_bytes**: Tamaño máximo (en bytes) que puede alcanzar un archivo de log antes de rotarse.
- **log\_rotation\_count**: Número máximo de archivos de log que se conservarán antes de eliminar los más antiguos.

##### **2. Arrancar el servicio.**

Se podrá lanzar el servicio con el siguiente comando :

```
systemctl start pandora_iot_server
```

Para dejar de recibir y almacenar mensajes se puede pausar el servicio con :

```
systemctl stop pandora_iot_server
```

<p class="callout warning">Se debe reiniciar el servicio con cada cambio de configuración para que haga efecto: </p>

```
systemctl restart pandora_iot_server
```

##### **3. Arrancar servidor desde la consola**

En la versión 783 se introdujo el siguiente token para habilitar el servidor IOT

Para llegar allí tenemos que dirigirnos a la sección Management &gt; Settings &gt; System Settings &gt; General Setup

Y luego habilitar el campo Enable IOT server y por último presionar Update.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-07/scaled-1680-/pJiimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-07/pJiimage.png)