[MQTT] Discovery add optional Taskname to Group unique id

This commit is contained in:
Ton Huisman
2026-08-14 16:03:49 +02:00
parent 473ed766fa
commit 2fd8f0e430
5 changed files with 23 additions and 1 deletions
+6 -1
View File
@@ -247,6 +247,11 @@ class SettingsStruct_tmpl
inline void MQTTConnectInBackground(bool value) { VariousBits_2.MQTTConnectInBackground = !value; }
#endif // if FEATURE_MQTT_CONNECT_BACKGROUND
#if FEATURE_MQTT_DISCOVER
inline bool MQTTDiscoverGroupInclTaskname() const { return VariousBits_1.MQTTDiscoverGroupInclTaskname; }
inline void MQTTDiscoverGroupInclTaskname(bool value) { VariousBits_1.MQTTDiscoverGroupInclTaskname = value; }
#endif // if FEATURE_MQTT_DISCOVER
// Flag indicating whether all task values should be sent in a single event or one event per task value (default behavior)
bool CombineTaskValues_SingleEvent(taskIndex_t taskIndex) const;
void CombineTaskValues_SingleEvent(taskIndex_t taskIndex, bool value);
@@ -688,7 +693,7 @@ public:
// VariousBits_1 defaults to 0, keep in mind when adding bit lookups.
struct {
uint32_t unused_00 : 1; // Bit 00
uint32_t MQTTDiscoverGroupInclTaskname : 1; // Bit 00
uint32_t appendUnitToHostname : 1; // Bit 01 Inverted
uint32_t unused_02 : 1; // Bit 02 uniqueMQTTclientIdReconnect_unused
uint32_t OldRulesEngine : 1; // Bit 03 Inverted
+6
View File
@@ -483,6 +483,12 @@ KeyValueStruct getKeyValue(LabelType::Enum label, bool extendedValue)
return KeyValueStruct(F("MQTT Connect in background"), Settings.MQTTConnectInBackground());
}
#endif // if FEATURE_MQTT_CONNECT_BACKGROUND
#if FEATURE_MQTT_DISCOVER
case LabelType::MQTT_DISCOVER_GROUP_INCL_TASKNAME:
{
return KeyValueStruct(F("MQTT Discover, Group incl. Taskname"), Settings.MQTTDiscoverGroupInclTaskname());
}
#endif // if FEATURE_MQTT_DISCOVER
#if FEATURE_COLORIZE_CONSOLE_LOGS
case LabelType::COLORIZE_CONSOLE_LOGS:
{
+3
View File
@@ -112,6 +112,9 @@ struct LabelType {
#if FEATURE_MQTT_CONNECT_BACKGROUND
MQTT_CONNECT_IN_BACKGROUND,
#endif // if FEATURE_MQTT_CONNECT_BACKGROUND
#if FEATURE_MQTT_DISCOVER
MQTT_DISCOVER_GROUP_INCL_TASKNAME,
#endif // if FEATURE_MQTT_DISCOVER
#if FEATURE_COLORIZE_CONSOLE_LOGS
COLORIZE_CONSOLE_LOGS,
#endif
+2
View File
@@ -1114,6 +1114,8 @@ bool MQTT_DiscoveryPublishWithStatusAndSet(taskIndex_t taskIndex,
const String valName = makeHomeAssistantCompliantName(valueName);
const String uniqueId = elementName.isEmpty() ? MQTT_TaskValueUniqueName(taskName, valName)
: Settings.MQTTDiscoverGroupInclTaskname()
? strformat(F("%s_%s_%s"), elementId.c_str(), taskName.c_str(), valName.c_str())
: strformat(F("%s_%s"), elementId.c_str(), valName.c_str());
String message;
{
+6
View File
@@ -161,6 +161,9 @@ void handle_advanced() {
#if FEATURE_MQTT_CONNECT_BACKGROUND
Settings.MQTTConnectInBackground(isFormItemChecked(LabelType::MQTT_CONNECT_IN_BACKGROUND));
#endif // if FEATURE_MQTT_CONNECT_BACKGROUND
#if FEATURE_MQTT_DISCOVER
Settings.MQTTDiscoverGroupInclTaskname(isFormItemChecked(LabelType::MQTT_DISCOVER_GROUP_INCL_TASKNAME));
#endif // if FEATURE_MQTT_DISCOVER
#if FEATURE_COLORIZE_CONSOLE_LOGS
Settings.ColorizeSerialLog(isFormItemChecked(LabelType::COLORIZE_CONSOLE_LOGS));
#endif
@@ -331,6 +334,9 @@ void handle_advanced() {
#if FEATURE_MQTT_CONNECT_BACKGROUND
,LabelType::MQTT_CONNECT_IN_BACKGROUND
#endif // if FEATURE_MQTT_CONNECT_BACKGROUND
#if FEATURE_MQTT_DISCOVER
,LabelType::MQTT_DISCOVER_GROUP_INCL_TASKNAME
#endif // if FEATURE_MQTT_DISCOVER
#if FEATURE_COLORIZE_CONSOLE_LOGS
,LabelType::COLORIZE_CONSOLE_LOGS
#endif