MQTT_GENERIC_BRIDGE: [mqttGenericBridge] setUpdate: error in set command: 11 °C

Begonnen von sknob001, 13 Februar 2026, 21:50:09

Vorheriges Thema - Nächstes Thema

sknob001

Hallo zusammen,

mir ist heute in meinen FHEM-Logs ein Eintrag aufgefallen und nachdem ich praktisch den ganzen Tag erfolglos investiert habe, habe ich entschieden dass ich Hilfe brauche.

Ich habe bei mir Home Assistant laufen und auf einem anderen Server läuft FHEM mit MQTT-Setup. Das publishing und subscribing funktioniert grundsätzlich und auch der Wert wird ins reading gesetzt.
Meine Nachricht geht von Home Assistant -> Mosquito MQTT Broker -> FHEM.
Ich publishe an Topic "mqttGenericBridge/set/Mythz/p05DHWsetNightTemp" den Payload "11".
Im HA habe ich das Topic auch abboniert und bekomme:
Nachricht 1011 empfangen auf mqttGenericBridge/Mythz/p05DHWsetNightTemp um 21:41:
11 °C
QoS: 0 - Retain: false
Nachricht 1010 empfangen auf mqttGenericBridge/set/Mythz/p05DHWsetNightTemp um 21:41:
11
QoS: 0 - Retain: false

Also einmal der publishte Wert und einmal einer von FHEM.
IM FHEM Log steht:
"2026.02.13 21:41:47 1: MQTT_GENERIC_BRIDGE: [mqttGenericBridge] setUpdate: error in set command: 11 °C"
Wie kommt das zustande. Bei dem Reading handelt es sich um eine FHEM THZ Integration.

Ich bin bzgl. MQTT kein Profi, als verzeiht mir Unklarheiten.

Danke und Gruß
sknob001

Meine Config:
attr Mythz mqttPublish sDisplay|sGlobal|p05DHWsetNightTemp:topic={"$base/$device/$reading"} sDisplay|sGlobal|p05DHWsetNightTemp:qos=0 sDisplay|sGlobal|p05DHWsetNightTemp:retain=0
attr Mythz mqttSubscribe p05DHWsetNightTemp:stopic={"$base/$device/$reading"}

define ha_MQTT2 MQTT2_CLIENT [xxx]
setuuid ha_MQTT2 [xxx]
attr ha_MQTT2 alias ha_MQTT2
attr ha_MQTT2 clientId fhem
attr ha_MQTT2 clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr ha_MQTT2 keepaliveTimeout 60
attr ha_MQTT2 msgAfterConnect -r fhem/connection/status connected
attr ha_MQTT2 msgBeforeDisconnect -r fhem/connection/status disconnected
attr ha_MQTT2 qosMaxQueueLength 100
attr ha_MQTT2 subscriptions setByTheProgram
attr ha_MQTT2 username [xxx]

define mqttGenericBridge MQTT_GENERIC_BRIDGE
setuuid mqttGenericBridge [xxx]
attr mqttGenericBridge IODev ha_MQTT2
attr mqttGenericBridge alias MQTT generic bridge
attr mqttGenericBridge globalDefaults sub:base=mqttGenericBridge/set pub:base=mqttGenericBridge
attr mqttGenericBridge group MQTT
attr mqttGenericBridge room HAMQTT
attr mqttGenericBridge stateFormat dev: device-count in: incoming-count out: outgoing-count
attr mqttGenericBridge verbose 3

rudolfkoenig

Ich kenne weder MQTT_GENERIC_BRIDGE noch THZ richtig, mein Beitrag ist also mit Vorsicht zu lesen.

Soweit ich MQTT_GENERIC_BRIDGE versetehe, kommt diese Meldung dann, wenn der set Befehl was zurueckliefert, was generell als Fehler zu werten ist.
Die Fehlermeldung ist in diesem Fall "11 °C"

Leider protokolliert weder MQTT_GENERAL_BRIDGE, noch THZ den Befehl, ich empfehle deswegen in FHEM/00_THZ.pm nach Zeile 1181 in der Funktion THZ_Set eine Zeile wie
Log3 $hash->{NAME}, 3, "THZ set ".join(@a);
einzufuegen, FHEM neu zu starten, das Experiment zu wiederholen, und im FHEM Log nach "THZ set" zu suchen.
Dann weiss man genau, was der Befehl war, und man kann per direktes Setzen aus FHEM aus rauskriegen, was erwuenscht ist.

Beta-User

Bitte auch ein "Copy for Forum" von dem thz-Device. Interessant sind v.a. die mqtt-Attribute.
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sknob001

Die Ausgabe war leider leer, bis auf "THZ set". Claude sei dank habe ich das hier eigefügt:
Log3 $hash->{NAME}, 3, "THZ set - args: ".join("|", @a)." - count: ".scalar(@a);
Wenn ich jetzt über FHEM einen Set auf das Reading mache, kommt das im Log:
2026.02.14 17:13:55 3: THZ set - args: Mythz|? - count: 2
2026.02.14 17:13:55 3: THZ set - args: Mythz|? - count: 2
2026.02.14 17:14:03 3: THZ set - args: Mythz|p05DHWsetNightTemp|10|°C - count: 4
2026.02.14 17:14:03 3: THZ set - args: Mythz|? - count: 2

Wenn ich Set über MQTT mache:
2026.02.14 17:24:27 3: THZ set - args: Mythz|p05DHWsetNightTemp|12|°C - count: 4
2026.02.14 17:24:27 1: MQTT_GENERIC_BRIDGE: [mqttGenericBridge] setUpdate: error in set command: 12 °C

Auch wenn ich FHEM-intern die Einheit weglasse und damit nur drei args habe, funktioniert der Set-Befehl. Über MQTT funktioniert er auch, es kommt aber trotzdem der Fehler.

Claude hat vermutet dass man die Einheit manuell entfernen muss, hat aber nicht geholfen:
if (defined($arg)) {
    $arg =~ s/\s*(°C|°F|%|bar|kW|kWh|l\/h)\s*//gi;  # Einheiten entfernen
    $arg =~ s/^\s+|\s+$//g;                           # Whitespace trimmen
}

Kann es sein dass der Fehler gar nicht durch 00_THZ.pm kommt, sondern durch die MQTT_GENERIC_BRIDGE? Mir würde jetzt nur einfallen an jede Fehlerstelle im 00_THZ.pm in THZ_Set ein Logging-Eintrag hinzuzufügen.

Zitat von: rudolfkoenig am 14 Februar 2026, 15:05:04Ich kenne weder MQTT_GENERIC_BRIDGE noch THZ richtig, mein Beitrag ist also mit Vorsicht zu lesen.

Soweit ich MQTT_GENERIC_BRIDGE versetehe, kommt diese Meldung dann, wenn der set Befehl was zurueckliefert, was generell als Fehler zu werten ist.
Die Fehlermeldung ist in diesem Fall "11 °C"

Leider protokolliert weder MQTT_GENERAL_BRIDGE, noch THZ den Befehl, ich empfehle deswegen in FHEM/00_THZ.pm nach Zeile 1181 in der Funktion THZ_Set eine Zeile wie
Log3 $hash->{NAME}, 3, "THZ set ".join(@a);
einzufuegen, FHEM neu zu starten, das Experiment zu wiederholen, und im FHEM Log nach "THZ set" zu suchen.
Dann weiss man genau, was der Befehl war, und man kann per direktes Setzen aus FHEM aus rauskriegen, was erwuenscht ist.

sknob001

Ich finde die Funktion nicht. Sowohl für mein Mythz als auch für meine MQTT_GENERIC_BRIDGE. Habe gesucht - es soll irgendwo ein Fragezeichen erscheinen und dahinter befindet sich die "Copy for forum.fhem.de" Funktion!?

Zitat von: Beta-User am 14 Februar 2026, 16:54:58Bitte auch ein "Copy for Forum" von dem thz-Device. Interessant sind v.a. die mqtt-Attribute.

rudolfkoenig

ZitatIch finde die Funktion nicht.
Jeweils auf der Detailseite, ganz unten,

Beta-User

Aus der Fehlermeldung würde ich schließen, dass von MQTT keine set-Anweisung verstanden wird, sondern ein readings-Update (fehlendes "s" am Topic des mqttSubscibe-Attributs am THZ-Device).
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sknob001

Bei mir gibt es da kein "Copy for forum.fhem.de". Schaue ich mir das im Quellcode an, sehe ich einen Link:
<div id='detLink'>
<div class="detLink"><a href="/fhem?cmd=devSpecHelp Mythz&fwcsrf=csrf_140775929201093">Help for THZ</a></div>
<div class="detLink"><a href="/fhem?cmd=forumCopy Mythz&fwcsrf=csrf_140775929201093">Copy for forum.fhem.de</a></div>
<select id='moreCmds'>
<option >...</option>
<option data-cmd='rawDef Mythz'>Raw definition</option>
<option data-cmd='style iconFor Mythz'>Select icon</option>
<option data-cmd='style showDSI Mythz'>Extend devStateIcon</option>
<option data-cmd='style eventMonitor Mythz'>Event Monitor (filtered)</option>
<option data-cmd='delete Mythz'>Delete Mythz</option>
</select>
<br><br>
Klicke ich da drauf, bekomme ich die Meldung: "Unknown command forumCopy, try help."

Gehe ich über F12 und schaue mir alles rings um die Drop Down ganz unten an, bekomme ich das:
<div class="detLink"><a href="#">Help for THZ</a></div>

<select id="moreCmds">
<option>...</option>
<option data-cmd="rawDef Mythz">Raw definition</option>
<option data-cmd="style iconFor Mythz">Select icon</option>
<option data-cmd="style showDSI Mythz">Extend devStateIcon</option>
<option data-cmd="style eventMonitor Mythz">Event Monitor (filtered)</option>
<option data-cmd="delete Mythz">Delete Mythz</option>
</select>
<br><br>
</div>

Zitat von: Beta-User am 14 Februar 2026, 16:54:58Bitte auch ein "Copy for Forum" von dem thz-Device. Interessant sind v.a. die mqtt-Attribute.

Beta-User

Zitat von: sknob001 am 15 Februar 2026, 20:21:21Klicke ich da drauf, bekomme ich die Meldung: "Unknown command forumCopy, try help."
Hmm, wenn es zwar da ist, aber nicht funktional, ist vermutlich bei irgendeinem update mal was schief gegangen...

Wie dem auch sei: Es ist eigentlich egal, ob du diese Funktionalität nutzt, eine RAW-Definition zeigst ("list -r Mythz") oder ein "normales list" von dem Ding.

Edit:
Sorry, die Attribute sind ja da, ich schau's mir gleich nochmal an.
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

ZitatBei mir gibt es da kein "Copy for forum.fhem.de".
Sorry: fuer iOS und OSX ist dieses Feature abgeschaltet, weil die Funktion vom Hersteller nicht unterstuetzt wird.

Bleibt es selbst zu machen:
- in den ... Menu ganz unten die Option Raw Definition auswaehlen
- unten "With Internals" anhaken
- den Inhalt kopieren
- im Forumsbeitrag einfuegen.
- das Kopierte in Code-Tags einsschliessen: alles markieren und Schriftrolle-mit-<> anklicken (alternativ davor [ code ] und danach [ /code ] ohne Leerzeichen schreiben)

Beta-User

Zwischenzeitlich bin ich mal durch den Code:
MQTT_GENERIC_BRIDGE erwartet, dass nichts (echtes undef) zurückkommt, wenn ein set-Befehl abgearbeitet wird. THZ scheint (via THZ_Get()-Aufruf in Zeile 1295) aber (Zeile 1497) sogar eine Rückmeldung mit Einheit ($msg2) zu geben...

Würde das unter "altes Modul mit Sonderlocke" verbuchen, die Konvention ist lt. https://wiki.fhem.de/wiki/DevelopmentModuleIntro#X_Set
ZitatStandardmäßig wird jeder Set-Befehl, welcher erfolgreich ausgeführt wurde ($error ist undef),

Nachtrag:
Zeile 1324 von 
      return ($msg);auf
      return;ändern sollte zumindest dazu führen, dass sich THZ in dem Punkt nach Vorgabe verhält. Kann sein, dass das Nebenwirkungen hat...
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors