diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h index c9ddae27..06631bdd 100644 --- a/src/publisher/pubMqtt.h +++ b/src/publisher/pubMqtt.h @@ -235,9 +235,13 @@ class PubMqtt { else snprintf(mTopic.data(), mTopic.size(), "%s", subTopic); - if(!mCfgMqtt->enableRetain && String(mTopic.data()) != String(mLwtTopic.data())) + if(!mCfgMqtt->enableRetain) retained = false; + // LWT messages should always be retained + if(strcmp(mTopic.data(), mLwtTopic.data()) == 0) + retained = true; + mClient.publish(mTopic.data(), qos, retained, payload); yield(); mTxCnt++;