De disponer de acceso al servidor MQTT se pueden capturar los mensajes y procesarlos por ejemplo para realizar estadísticas de RSSI y SNR de cada dispositivo respecto al Gateway.
Se requiere una conexión autenticada al servidor MQTT, para caso experimental se recurre a Python con la librería PAHO para acceder como cliente.
# grabando mensajes MQTT # configurar los parámetros para la creacion de archivo de texto import paho.mqtt.client as mqtt # INGRESO # Parametros para la conexión servidormqtt = "192.168.xx.xx" topicolee = "#" # Para el archivo.txt cuentamensaje = 0 nombrearchivo = 'unreporte.txt' archivo = open(nombrearchivo,'w') archivo.close() # Cierra el archivo tramabuscada = ['application/1/device/c9c2a03913ac2ec5/event/up', 'application/1/device/b35915f22af620d1/event/up', 'application/1/device/b5a2349b828d97ea/event/up', 'application/1/device/f2f724028c0e996c/event/up'] cuentaDisp = [0,0,0,0] cuentagtw = 0 # BLOQUE BÁSICO DE PROGRAMA # Al recibir CONNACK desde el servidor. def on_connect(client, userdata, flags, rc): print("Conexión/código de resultado: "+str(rc)) # Inicio o renovación de subscripción client.subscribe(topicolee) return() # el tópico tiene una publicación def on_message(client, userdata, msg): global cuentamensaje print(msg.topic) #+" "+str(msg.payload)) unmensaje = msg.topic+" "+str(msg.payload) # Archivo en modo añadir 'append' archivo = open(nombrearchivo,'a') unalinea = unmensaje + '\n' archivo.write(unalinea) if (msg.topic in tramabuscada): cual = tramabuscada.index(msg.topic) cuentaDisp[cual] = cuentaDisp[cual] + 1 cuentamensaje = cuentamensaje + 1 print('\n mensajes recibidos: ', cuentamensaje) print(' cuenta por dispositivos: ', cuentaDisp) print() return() client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect(servidormqtt, 1883, 60) client.loop_forever()