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]

;; MQTT Topictopic
topic = testtopic/#

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

;; Base de Datos
dbuser = usuario
dbpass = contraseñaDatabase
dblocation = /ruta/del/directorio/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 = /ruta/del/directorio/logsvar/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 y: Especifican la dirección del broker MQTT.
  • port: Especifican la dirección yel 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.
  • dbuser y dbpass: Credenciales para acceder a la base de datos.
  • 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 realizar limpieza deeliminar datos antiguos ende 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 y log_rotation_count: ConfiguraciónTamaño paramáximo la(en rotaciónbytes) que puede alcanzar un archivo de logs.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