[MQTT_GENERIC_BRIDGE] FHEM schließt Verbindung zu MQTT2_CLIENT bei Änderungen

Begonnen von drhirn, 27 Januar 2026, 16:16:25

Vorheriges Thema - Nächstes Thema

drhirn

Ich habe ein MQTT2_CLIENT Device definiert, dass die Verbindung zu einem Mosquitto-Server herstellt. Außerdem habe ich ein MQTT_GENERIC_BRIDGE Device eingerichtet. Jedes Mal, wenn ich etwas an der MGB ändere, oder MGB-relevante Dinge an einem anderen Device, kappt FHEM die Verbindung zum Mosquitto.

Mosquitto-Log
1769526503: Client FHEM closed its connection.
1769526503: New connection from 172.28.0.12:39504 on port 1883.
1769526503: New client connected from 172.28.0.12:39504 as FHEM (p1, c1, k30, u'username').
bzw. FHEM-Log
2026.01.27 16:04:12 1: mqtt.intern.jft.at:8883 disconnected, waiting to reappear (Mosquitto)
2026.01.27 16:04:13 1: mqtt.intern.jft.at:8883 reappeared (Mosquitto)

Warum ist das so?

MGB:
define mqttGenericBridge MQTT_GENERIC_BRIDGE mqtt hmThermostatWz_Climate
attr mqttGenericBridge IODev Mosquitto
attr mqttGenericBridge globalDefaults sub:base=fhem/set pub:base=fhem
attr mqttGenericBridge globalTypeExclude MQTT2_CLIENT MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr mqttGenericBridge room MQTT
attr mqttGenericBridge stateFormat dev: device-count in: incoming-count out: outgoing-count
#   DEF        mqtt hmThermostatWz_Climate
#   FUUID      5c487d41-f33f-dc90-65d7-94f243d88ee56d2c
#   FVERSION   10_MQTT_GENERIC_BRIDGE.pm:v1.4.4-s25117/2021-10-25
#   IODev      Mosquitto
#   NAME       mqttGenericBridge
#   NR         129
#   NTFY_ORDER 70-mqttGenericBridge
#   STATE      dev: 1 in: 15624 out: 31502
#   TYPE       MQTT_GENERIC_BRIDGE
#   devspec    hmThermostatWz_Climate
#   eventCount 31580
#   prefix     mqtt
#   READINGS:
#     2026-01-27 15:51:15   IODev           Mosquitto
#     2026-01-27 15:44:45   attrTemplateVersion 20211208_MQTT
#     2026-01-27 16:08:23   device-count    1
#     2026-01-27 15:51:15   incoming-count  15624
#     2026-01-27 16:13:41   outgoing-count  31502
#     2026-01-27 16:13:41   transmission-state outgoing publish sent
#     2026-01-27 15:51:15   updated-reading-count 15616
#     2026-01-27 15:51:15   updated-set-count 4
#   devices:
#     :global:
#       :alias:
#       :defaults:
#         pub:base   fhem
#         sub:base   fhem/set
#     hmThermostatWz_Climate:
#       :alias:
#         pub:measured-temp temperature
#         sub:measured-temp temperature
#       :publish:
#         controlMode:
#           last       1769526668.19316
#           mode       R
#           topic      {"$base/$device/$name"}
#         desired-temp:
#           last       1769526821.44074
#           mode       R
#           topic      {"$base/$device/$name"}
#         humidity:
#           last       1769526821.4419
#           mode       R
#           topic      {"$base/$device/$name"}
#         measured-temp:
#           last       1769526821.44308
#           mode       R
#           topic      {"$base/$device/$name"}
#       :subscribe:
#   globalDeviceExcludes:
#   globalReadingExcludes:
#   globalTypeExcludes:
#     pub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT2_CLIENT *
#       MQTT2_DEVICE *
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#     sub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT2_CLIENT *
#       MQTT2_DEVICE *
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#   subscribe:
#
setstate mqttGenericBridge dev: 1 in: 15624 out: 31502
setstate mqttGenericBridge 2026-01-27 15:51:15 IODev Mosquitto
setstate mqttGenericBridge 2026-01-27 15:44:45 attrTemplateVersion 20211208_MQTT
setstate mqttGenericBridge 2026-01-27 16:08:23 device-count 1
setstate mqttGenericBridge 2026-01-27 15:51:15 incoming-count 15624
setstate mqttGenericBridge 2026-01-27 16:13:41 outgoing-count 31502
setstate mqttGenericBridge 2026-01-27 16:13:41 transmission-state outgoing publish sent
setstate mqttGenericBridge 2026-01-27 15:51:15 updated-reading-count 15616
setstate mqttGenericBridge 2026-01-27 15:51:15 updated-set-count 4

Danke!
Stefan

Beta-User

Ist am IO die subscriptions "durch das Programm" gesetzt?
Dann werden die vermutlich in dem Zusammenhang erneut.
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

drhirn

Danke, war gesetzt. Aber das Entfernen leider nicht die Lösung. Verbindet sich immer noch bei jeder Änderung an einem Device neu.

Ein Verbose 5 des MQTT2_CLIENT bringt leider auch nichts brauchbares:
2026.01.28 10:26:39 5: Mosquitto: discarding DISCONNECT (224)(0)
2026.01.28 10:26:39 1: mqtt.example.com:8883 disconnected, waiting to reappear (Mosquitto)
2026.01.28 10:26:39 5: HttpUtils url=https://mqtt.example.com:8883/ NonBlocking via https
2026.01.28 10:26:39 4: IP: mqtt.example.com -> 192.168.2.16
2026.01.28 10:26:40 5: Mosquitto: sending CONNECT (16))(0)(6)MQIsdp(3)(194)(0)(30)(0)(4)FHEM(0)(9)user(0)(10)password
2026.01.28 10:26:40 5: DevIo_SimpleWrite Mosquitto: 102900064d514973647003c2001e00044648454d00096d6f7371756974746f000a4d307371756974746f21
2026.01.28 10:26:40 1: mqtt.example.com:8883 reappeared (Mosquitto)

Aber es ist leider gerade so viel Traffic am Mosquitto, dass keine vernünftige Recherche möglich ist. Ich hoffe, ich kann das später nachholen.

rudolfkoenig

ZitatEin Verbose 5 des MQTT2_CLIENT bringt leider auch nichts brauchbares:
Kannst Du bitte in 00_MQTT_CLIENT.pm in der Funktion MQTT2_CLIENT_Disco vorne (z.Bsp. Zeile 282) eine Zeile mit
stacktrace();einfuegen?
Die zusaetzliche Ausgabe nach einem Restart sollte zu verkraften sein, da Disconnect nicht staendig passieren soll.

betateilchen

Mich würde ein list des MQTT2_CLIENT interessieren.

Zitat von: drhirn am 27 Januar 2026, 16:16:25Mosquitto-Log
1769526503: Client FHEM closed its connection.
1769526503: New connection from 172.28.0.12:39504 on port 1883.
1769526503: New client connected from 172.28.0.12:39504 as FHEM (p1, c1, k30, u'username').
bzw. FHEM-Log
2026.01.27 16:04:12 1: mqtt.intern.jft.at:8883 disconnected, waiting to reappear (Mosquitto)
2026.01.27 16:04:13 1: mqtt.intern.jft.at:8883 reappeared (Mosquitto)

Warum werden da Verbindungen auf unterschiedlichen ports (1883 & 8883) gelogged?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!