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 Topic
topic = testtopic/#
;; Conexión MQTT
host = test.mosquitto.org
port = 1883
protocol = tcp
ssl = 0
trust_ssl = 1
;; Base de Datos
dbuser = usuario
dbpass = contraseña
dblocation = /ruta/del/directorio/db
dbname = pandora_iot.db
data_cleaning_period = 86400
;; Logs
log_name = pandora_iot.log
log_location = /ruta/del/directorio/logs
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
yport
: Especifican la dirección y puerto del broker MQTT.protocol
: El protocolo a usar para la conexión MQTT (por ejemplo,tcp
owebsockets
).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
ydbpass
: 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_period
: Tiempo (en segundos) para realizar limpieza de datos antiguos en la base de datos.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
ylog_rotation_count
: Configuración para la rotación de logs.
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