Configurando el filtrado de mensajes
El plugin hace uso de distintos filtros en los que apoyarse para la filtración de mensajes.
Filtrado de topic
Para el filtrado de topic, se hace uso de las etiquetas Filter_topic y Filter_topic_exact_match
-
Filter_topic
Expresión regular o texto exacto que deba coincidir con el topic del mensaje para cumplirse el filtro. Es opcional. Por defecto haría match con cualquier topic.
-
Filter_topic_exact_match
Indica si lo indicado en filter_topic se tratará como una expresión regular (0) o como un texto exacto (1). Es opcional. Por defecto su valor es 0.
Ejemplos
Haciendo uso de los filtros Filter_topic y Filter_topic_exact_match podremos elegir el topic al que suscribirse.
Podemos indicar directamente el nombre del topic o buscar un patron de regex en este.
Supongamos que tienes un topic MQTT llamado:
sensors/temperature/livingroom
EJEMPLO 1 filter_topic_exact_match 1 (Texto exacto)
Podríamos configurar filter_topic especifando el nombre del topic.
filter_topic sensors/temperature/livingroom
y configurar filter_topic_exact_match a 1, para que busque solo ese topic.
filter_topic_exact_match 1
Si en vez de especificar el nombre del topic completo, especificamos solo una parte de este :
filter_topic sensors/temperature/
También coincidiría.
EJEMPLO 2 filter_topic_exact_match 0 (Expresión regular)
Podríamos configurar filter_topic especifando una expresión regular que haga match con el nombre del topic al que se pretende suscribir. Por ejemplo, la siguiente, que miraría que empiecen por "sensors" y terminen en "livingroom"
filter_topic ^sensors/.*?/livingroom$
y configurar filter_topic_exact_match a 0, para que filtre por expresion regular, en vez de texto exacto.
filter_topic_exact_match 0
Filtrado de mensajes
Para el filtrado de topic, se hace uso de las etiquetas Filter_topic y Filter_topic_exact_match
-
Filter_message
Expresión regular o texto exacto que deba coincidir con el mensaje para cumplirse el filtro. Es opcional. Por defecto haría match con cualquier mensaje.
-
FIlter_message_exact_match
Indica si lo indicado en filter_message se tratará como una expresión regular (0) o como un texto exacto (1). Es opcional. Por defecto su valor es 0.
Ejemplos
Haciendo uso de los filtros Filter_messagey Filter_message_exact_match podremos filtrar los mensajes que se van a recibir.
Podemos indicar directamente contenido del mensaje o buscar un patron de regex en este.
Supongamos que tienes un mensaje como este:
{"message":"Move up right",
"status":"active",
"datetime":"2025-02-11T14:30:54.260Z",
"data":{"yaw_rate":0.11466979980468749,
"pitch_rate":0.6159210205078126,
"yaw_direction":"right",
"pitch_direction":"up"}}
EJEMPLO 1 filter_message_exact_match 1 (Texto exacto)
Podríamos configurar filter_message especifando el texto del mensaje.
filter_message Move up right
y configurar filter_topic_exact_match a 1, para que busque solo ese topic.
filter_message_exact_match 1
Si en vez de especificar el nombre del topic completo, especificamos solo una parte de este :
filter_message Move up
También coincidiría.
EJEMPLO 2 filter_message_exact_match 0 (Expresión Regular)
Generación y uso de macros
-
FIlter_message_capture_regex
Expresión regular con grupos de captura para
obtener valores del mensaje. Aquello que haga match con los grupos de captura se
almacenará en macros “__regexN__”, siendo N la posición del grupo de captura de la
regex.
Ejemplos
TODO
-
Filter_message_capture_json
Lista de rutas dentro de un JSON (separadas por”|”) de las cuales capturar sus valores. Usando el mismo formato que el comando jq. Aquello que se capture por cada path se almacenará en macros “__jsonN__”, siendo N la posición del path dentro de la lista.
Ejemplos
TODO