MQTT

Desde sl script se pueden hacer publicaciones bajo criterios y formatos particulares, diferentes a los que se pueden enviar por la configuración estándar.

Ademas, se pueden recibir los mensajes de los tópicos a los cuales se está suscripto.

Fuente /
Destino
Indice
Valor
R/W
Descripción
Función
1000
0
0 a 10
read_io Mensajes recibidos pendientes
MQTT
1001
0
5 -> Conectado
read_io Estado de conexión con el broker
1002
0
2 -> Enviado OK
read_io Estado de ultima publicación
1000
-
read_str Lee primer mensaje en cola de suscripción
1003
-
read_str Tópico del mensaje en cola de suscripción leido con 1000
1001
-
write_str Carga tópico a publicar
1002
-
write_str Carga payload a publicar y publica

Ejemplo de publicación: Publica cada 10 segundo un numero que se incrementa en cada envío

check_timer t{
  a=a+1;
  read_io 1001,g,0; #Estado de conexión con el broker;
  if g = 5{ #Conectado?;
    write_str 1001,'Prueba/Topico'; #Escribo Topico;
    W = '{ "VAN1":"',a,'}';
    write_str 1002,W;
    read_io 1002,h,0; #h contiene el estado del envio;
  };
  timer t,10000;
};
end;

Ejemplo de recepción de mensajes: Recibe un mensaje e identifica a que tópico corresponde. Lo envía por la consola de Traces. Previamente se deben carga los tópicos en la configuración web del equipo.

read_io 1000,a,0; #MQTT - Mensajes recibidos pendientes;
if a > 0{
  read_str 1000,o,Y; #Lee primer mensaje en cola de suscripción;
  read_str 1003,o,X; #Tópico del mensaje en cola de suscripción recien leido;
  write_str 35,'Mensajes de suscripcion a topico: ',X,': ',Y,$13,$10;
};
end;

2024-04-23