Skip to main content

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

 

Se debe reiniciar el servicio con cada cambio de configuración para que haga efecto: 


systemctl restart pandora_iot_server