MQTT só estabelece comunicação com tópico se o driver estiver aberto em tela

Estou com um problema estranho com MQTT.

Eu tenho uma aplicação que está fazendo o Subscribe em um Tópico e carregando os dados para dentro de um bloco de comunicação. A mensagem é simples com 6 campos de leitura e tenho também uma Tag para fazer a escrita em outro tópico.

Estou testando a leitura/escrita em tópicos, ou seja, estou lendo um tópico diferente do que estou escrevendo. O tópico que estou lendo é de um equipamento externo e no E3 estou escrevendo em um outro tópico distinto.

Na tag que está fazendo o Publish no tópico está funcionando tudo corretamente. O driver sobe, ele estabelace a comunicação (fica azul) e quando eu mando o publish vai tranquilo.

Mas o tópico que estou fazendo o Subscribe ele simplesmente não comunica, não fica com status nenhum de cor nem nada… Ele só comunica (recebe os dados do tópico) a partir do momento que eu mando uma nova mensagem para o tópico que ele está com o subscribe. Pensei que poderia ser por questão de não ter mensagem nenhum então ele não tem o que ler mesmo, mas se eu não estiver com o driver aberto ou com o watchwindow aberto, não importa o quanto de mensagem eu mandar no tópico o driver simplesmente não lê os dados… ele só lê quando eu vou lá e abro o watchwindow e envio a mensagem.

Ou seja, eu preciso estar com o driver em tela para que ele consiga carregar o subscribe do tópico.
Se não for assim, não carrega…

No driver estou recebendo a mensagem:
(4C88) DRIVER First Response Expired for [nomeTopicoQueEstouComSubscribe]

Eu estou usando o E3 em tempo de desenvolvimento com o HK de desenvolvedor.

Alguém consegue imaginar o que seja? Está com cara que é alguma configuração, mas já mudei tudo que pudesse imaginar.

Aparentemente a questão é que no server do MQTT eu preciso fazer um “Retain” da mensagem no servidor. Se manter a mensagem no broker ele vai conseguir ler… mas se o tópico estiver vazio e eu mandar uma nova mensagem ele só carrega no E3 se o driver estiver aberto ou no WatchWindow

A tag já está associada em algum objeto? Coloca a propridade AdviseType em AlwaysInAdvise pra sempre pegar a leitura da tag, mesmo que ela não esteja sendo usada em alguma leitura da aplicação.

Se o valor que está chegando no broker MQTT não estiver variando, então leitura não será atualizada. Nesse caso vc precisa colocar o EnableDeadband em False pra sempre fazer a leitura, independente do valor estar variando ou não. Isso atualiza o timestamp da tag sempre que chega algo no broker.

Lembrando que mais de uma tag associada com o mesmo tópico vai dar problema no driver