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.