Olá malta, hoje venho partilhar convosco algo que pode dar muito jeito quando andamos a testar cenários em que temos mensagens MQTT Retained.
Um mensagem com a Flag Retain fica guardada no Broker MQTT até que seja subscrita por outra.
Uma solução rápida para eliminar a mensagem Retain será publicar no mesmo tópico uma mensagem vazia, no entanto se tivermos muitos tópicos com mensagens Retain pode dar muito trabalho por isso uma forma simples será eliminar a base de dados do Mosquitto e todas as mensagem Retain são perdidas.
Este cenário pode parecer uma pouco Brute Force mas se pensar-mos bem, assim que os nossos sensores/atuadores se ligarem novamente ao Broker MQTT vão publicar novamente a mensagem Retain que realmente interessa :)
Procedimento
Um mensagem com a Flag Retain fica guardada no Broker MQTT até que seja subscrita por outra.
Uma solução rápida para eliminar a mensagem Retain será publicar no mesmo tópico uma mensagem vazia, no entanto se tivermos muitos tópicos com mensagens Retain pode dar muito trabalho por isso uma forma simples será eliminar a base de dados do Mosquitto e todas as mensagem Retain são perdidas.
Este cenário pode parecer uma pouco Brute Force mas se pensar-mos bem, assim que os nossos sensores/atuadores se ligarem novamente ao Broker MQTT vão publicar novamente a mensagem Retain que realmente interessa :)
Procedimento
- sudo service mosquitto stop
- sudo rm /var/lib/mosquitto/mosquitto.db
- sudo service mosquitto start
DONE....
Espero ter ajudado :)
Grande Abraço
Amigo, estou cm este problema, meu sonoff dimmer d1 liga sozinho em horas aleatoriamente. Consegue me explicar como altero esta configuração q indicou? Tenho conhecimento na área de informática mas não sei q ferramenta usar para alterar a configuração q indica. Obrigado de qualquer jeito, Erick
ResponderEliminar