Browse Source

Fix: Ensure Home Assistant discovery messages are always retained

Home Assistant requires MQTT discovery messages to be sent with the retained flag to properly discover devices. Previously, discovery messages were affected by the global 'enableRetain'
setting, causing discovery to fail when retain was disabled for sensor data.

This fix ensures discovery messages are always retained regardless of the global retain setting, while preserving the original behavior for regular sensor data.
pull/1854/head
Sebastian Muszynski 4 days ago
parent
commit
9b26dad1aa
  1. 4
      src/publisher/pubMqtt.h

4
src/publisher/pubMqtt.h

@ -238,6 +238,10 @@ class PubMqtt {
if(!mCfgMqtt->enableRetain) if(!mCfgMqtt->enableRetain)
retained = false; retained = false;
// Home Assistant requires retained discovery messages
if(strncmp(subTopic, MQTT_DISCOVERY_PREFIX, strlen(MQTT_DISCOVERY_PREFIX)) == 0)
retained = true;
mClient.publish(mTopic.data(), qos, retained, payload); mClient.publish(mTopic.data(), qos, retained, payload);
yield(); yield();
mTxCnt++; mTxCnt++;

Loading…
Cancel
Save