# 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 = testtopic/#                                              (topic unico)
;; topic = ["factory/+/temperature","factory/+/humidity"]           (multi-topic)
topic = < Topic al que suscribirse para recibir mensajes. Si se quiere mas de uno, usar un array JSON de una sola linea >

;; 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/#`). Si se quiere mas de uno, usar un array JSON de una sola linea.
- **`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 incluye el servidor IoT como parte de la instalación del servidor, por lo que no hace falta gestionar el servicio de forma manual.

Se añade un token para habilitar el servidor IOT y el propio servidor de Pandora gestiona el servicio.

También se añade una sección para gestionar la configuración del servidor IoT cuando se active.

Para activar el server IoT, se debe ir a Settings &gt; General Setup &gt; Features, luego habilitar el campo Enable IOT server y, por último, presionar Update.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-08/scaled-1680-/9Whimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-08/9Whimage.png)

Esto activará un nuevo menú dentro de System Settings, donde podremos gestionar toda la configuracion.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-08/scaled-1680-/HS3image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-08/HS3image.png)