MQTT2_Client und MQTT2_DEVICE Subsciptions

Begonnen von joergi, 10 November 2026, 08:52:44

Vorheriges Thema - Nächstes Thema

joergi

Mein MQTT-Server ist über die Jahre gewachsen und hat mittlerweile jede Mege Topics.
Die Last meines FHEM wurde immer höher und damit langsamer.

Ich habe dann mit ChatGPT analysiert woran es liegt.

Ergebnis: Durch fehlende attr subscription Definitionen in den MQTT2 Clients wurden alle Topics aboniert. Dies führte natürlich auch zu hoher Last im Netzwerk und auf dem MQTT-Server.

ChatGPT hatte vorgeschlagen alle Topics die ich wirklich brauche über attr subscription in dem Clients zu definieren. Default werden nähmlich alle aboniert (#).

Da ist natürlich unheimlich aufwendig und fehlerträchtig. Deshalb wurde zusammen mit ChatGPT folgende Lösung eintwickelt:

Über eine Erweiterung in 99_myUtils.pm werden alle Topics der MQTT2 Devices gescannt und in attr subscription eingefügt.
Vorraussetzung ts das die Syntax stimmt (:.* am Ende des Topics) und der MQTT2 Client im attr IODev im MQTT2 Device richtig definiert ist.

Zusätzlich zu der 99_myUtils.pm Erweiterung wurde noch eine manuelle Testmöglichkeit entwickelt welche als Ergebniss im fhem log die Auswertung bereitstellt.

In der Datei ist die Erweiterung für 99_myUtils.pm, und die Definitionen in fhem.

Mein FHEM ist jetzt um Größenornungen schneller mit der Web Oberfläche und die Last halbiert.

Vielleicht hilft es ja auch Anderen.
Danke an ChatGPT

Jörg

joergi

Noch zu Ergänzung: attr setByTheProgram hat bei mir nicht funktioniert-

Beta-User

Magst du das nach MQTT (Forenbereich) verschieben (unten links) und kurz erläutern, wie deine Landschaft drumherum aussieht?

setByTheProgramm funktioniert übrigens v.a. mit MQTT_GENERIC_BRIDGE durchaus.
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

joergi

Ich habe vier FHEM installationen mit unterschiedlichen Aufgaben. Einer davon ist auch der MQTT Server mit Mosquitto aufgesetzt. Alle vier FHEM publishen und subscriben hierhin. Alle haben eine eindeutige clientId.