Modul 00_MQTT lässt Fhem nicht starten

Begonnen von maci, 24 März 2025, 19:17:48

Vorheriges Thema - Nächstes Thema

maci

Nach dem ich eines meiner Fhem Instanzen neu installieren musste, bin ich heute draufgekommen, dass das Modul 00_MQTT.pm verhindert dass Fhem neu startet.
Das ganze ist mir erst aufgefallen, als ich den Server neu gestartet habe.
Im Fhem Log waren zu hauf Fehlermeldungen über MQTT.
So sah mein Log aus.
PERL WARNING: Subroutine Notify redefined at ./FHEM/00_MQTT.pm line 372, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/00_MQTT.pm line 380, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Start redefined at ./FHEM/00_MQTT.pm line 413, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Stop redefined at ./FHEM/00_MQTT.pm line 431, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Ready redefined at ./FHEM/00_MQTT.pm line 450, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Rename redefined at ./FHEM/00_MQTT.pm line 457, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Init redefined at ./FHEM/00_MQTT.pm line 467, <$fh> line 3487.
2025.03.24 16:56:13.803 1: PERL WARNING: Subroutine Timer redefined at ./FHEM/00_MQTT.pm line 477, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine Read redefined at ./FHEM/00_MQTT.pm line 500, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_connect redefined at ./FHEM/00_MQTT.pm line 651, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_publish redefined at ./FHEM/00_MQTT.pm line 664, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_subscribe redefined at ./FHEM/00_MQTT.pm line 676, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_unsubscribe redefined at ./FHEM/00_MQTT.pm line 683, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_ping redefined at ./FHEM/00_MQTT.pm line 690, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_disconnect redefined at ./FHEM/00_MQTT.pm line 694, <$fh> line 3487.
2025.03.24 16:56:13.804 1: PERL WARNING: Subroutine send_message redefined at ./FHEM/00_MQTT.pm line 701, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine topic_to_regexp redefined at ./FHEM/00_MQTT.pm line 716, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine client_subscribe_topic redefined at ./FHEM/00_MQTT.pm line 727, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine client_unsubscribe_topic redefined at ./FHEM/00_MQTT.pm line 746, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine Client_Define redefined at ./FHEM/00_MQTT.pm line 763, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine Client_Undefine redefined at ./FHEM/00_MQTT.pm line 779, <$fh> line 3487.
2025.03.24 16:56:13.805 1: PERL WARNING: Subroutine client_attr redefined at ./FHEM/00_MQTT.pm line 784, <$fh> line 3487.
2025.03.24 16:56:13.806 1: PERL WARNING: Subroutine notify_client_connected redefined at ./FHEM/00_MQTT.pm line 898, <$fh> line 3487.
2025.03.24 16:56:13.806 1: PERL WARNING: Subroutine notify_client_disconnected redefined at ./FHEM/00_MQTT.pm line 903, <$fh> line 3487.
2025.03.24 16:56:13.806 1: PERL WARNING: Subroutine notify_client_connection_timeout redefined at ./FHEM/00_MQTT.pm line 908, <$fh> line 3487.
2025.03.24 16:56:13.806 1: PERL WARNING: Subroutine client_start redefined at ./FHEM/00_MQTT.pm line 913, <$fh> line 3487.
2025.03.24 16:56:13.806 1: PERL WARNING: Subroutine client_stop redefined at ./FHEM/00_MQTT.pm line 945, <$fh> line 3487.
Undefined subroutine &MQTT::DEVICE::client_attr called at ./FHEM/10_MQTT_DEVICE.pm line 233, <$fh> line 3489.
Das ist nur ein Auszug, in Wirklichkeit waren das ca 300 Zeilen.
Habe dann das Modul aus dem Ordner FHEM entfernt.
Dann startete Fhem wieder. Nur MQTT fehlt jetzt.

Mit MQTT2 habe ich nichts gar nichts gemacht.
Was muss ich da machen, damit ich wieder Werte bekomme?
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

rudolfkoenig

Die "...redefined" Zeilen sind normal, wenn man versucht ein Modul erneut zu laden.
Problematisch ist die "Undefined subroutine &MQTT::DEVICE::client_attr...." Zeile.
FHEM an sich sollte deswegen nicht abstuerzen, die Funktionalitaet dieser Module fehlt natuerlich.

Ich hatte gerade kein Problem mit einem aktuellen FHEM, nachdem ich
% sudo perl -MCPAN -e shell
cpan[1]> install Net::MQTT:Constants
ausgefuehrt habe, die Funktion MQTT::DEVICE::client_attr wurde gefunden und aufgerufen.


Die Module MQTT bzw. MQTT_DEVICE werden seit laengerem nicht mehr gepflegt, ich empfehle auf MQTT2 umzusteigen.

maci

Danke, das nachinstallieren hat geholfen.
Nun kann ich das Modul belassen.

Der Umstiege auf MQTT2 ist aber trotzdem notwendig und wird nach und nach umgesetzt
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan