FHEM startet nach MQTT Installation nicht mehr

Begonnen von ag21368, 25 November 2018, 23:22:21

Vorheriges Thema - Nächstes Thema

ag21368

Hallo,
nach der MQTT Installation und Einrichtung in FHEM habe ich ein erstes Device angelegt und einen Sonoff geschaltet. eine Stunde später schaltete er ncioht mehr und es ging kein publish raus obwohl der Broker auf open stand.
Wollte dann FHEM neustarten, seit dem läuft mein FHEM nicht mehr.

Gehe ich über die Konsole in die fhem.cfg und kommentiere alle mqtt Devices aus läuft FHEm wieder

lege ich ein testdevice an geht es wieder aber kurze Zeit später (nach anlegen eines 2. Testdevices) geht kein publish mehr raus. Neustart FHEm und er startet wieder nicht neu

Wenn ich FHEM im Debug Modus starte bekomme ich folgenden Fehler.

PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_SUBSCRIBE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_MOST_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBCOMP redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_DISCONNECT redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_ACCEPTED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBREC redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_NOT_AUTHORIZED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBREL redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_SUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_EXACTLY_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_BAD_USER_NAME_OR_PASSWORD redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_IDENTIFIER_REJECTED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_LEAST_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBLISH redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBSCRIBE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PINGREQ redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_PINGRESP redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_SERVER_UNAVAILABLE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Define redefined at ./FHEM/00_MQTT.pm line 106, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Undef redefined at ./FHEM/00_MQTT.pm line 135, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Delete redefined at ./FHEM/00_MQTT.pm line 141, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Shutdown redefined at ./FHEM/00_MQTT.pm line 148, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine onConnect redefined at ./FHEM/00_MQTT.pm line 156, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine onDisconnect redefined at ./FHEM/00_MQTT.pm line 163, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine onTimeout redefined at ./FHEM/00_MQTT.pm line 170, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine isConnected redefined at ./FHEM/00_MQTT.pm line 179, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine process_event redefined at ./FHEM/00_MQTT.pm line 186, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Set redefined at ./FHEM/00_MQTT.pm line 207, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine parseParams redefined at ./FHEM/00_MQTT.pm line 254, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine parsePublishCmdStr redefined at ./FHEM/00_MQTT.pm line 341, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine parsePublishCmd redefined at ./FHEM/00_MQTT.pm line 350, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Notify redefined at ./FHEM/00_MQTT.pm line 392, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/00_MQTT.pm line 400, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Start redefined at ./FHEM/00_MQTT.pm line 433, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Stop redefined at ./FHEM/00_MQTT.pm line 450, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Ready redefined at ./FHEM/00_MQTT.pm line 464, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Rename redefined at ./FHEM/00_MQTT.pm line 469, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Init redefined at ./FHEM/00_MQTT.pm line 479, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Timer redefined at ./FHEM/00_MQTT.pm line 488, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Read redefined at ./FHEM/00_MQTT.pm line 501, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_connect redefined at ./FHEM/00_MQTT.pm line 647, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_publish redefined at ./FHEM/00_MQTT.pm line 660, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_subscribe redefined at ./FHEM/00_MQTT.pm line 672, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_unsubscribe redefined at ./FHEM/00_MQTT.pm line 679, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_ping redefined at ./FHEM/00_MQTT.pm line 686, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_disconnect redefined at ./FHEM/00_MQTT.pm line 690, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine send_message redefined at ./FHEM/00_MQTT.pm line 697, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine topic_to_regexp redefined at ./FHEM/00_MQTT.pm line 712, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine client_subscribe_topic redefined at ./FHEM/00_MQTT.pm line 723, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine client_unsubscribe_topic redefined at ./FHEM/00_MQTT.pm line 742, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Client_Define redefined at ./FHEM/00_MQTT.pm line 759, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine Client_Undefine redefined at ./FHEM/00_MQTT.pm line 778, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine client_attr redefined at ./FHEM/00_MQTT.pm line 783, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine notify_client_connected redefined at ./FHEM/00_MQTT.pm line 897, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine notify_client_disconnected redefined at ./FHEM/00_MQTT.pm line 902, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine notify_client_connection_timeout redefined at ./FHEM/00_MQTT.pm line 907, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine client_start redefined at ./FHEM/00_MQTT.pm line 912, <$fh> line 311.
2018.11.25 22:57:19 1: PERL WARNING: Subroutine client_stop redefined at ./FHEM/00_MQTT.pm line 944, <$fh> line 311.
Undefined subroutine &MQTT::DEVICE::client_attr called at ./FHEM/10_MQTT_DEVICE.pm line 232, <$fh> line 312.


Vieleicht hat ja jemand einen Tipp für mich

hexenmeister

Habe gerade kein Quelltext vor Augen zum nachsehen. Daher erstmal obligatorische Frage : wie aktuell ist die fhem Installation?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ag21368

den Raspberry auf die aktuellste Version gebracht dann FHEM aktualisiert und dann MQTT installiert

hexenmeister

Ich verstehe nicht, was hier passiert. Der Log deutet auf "reload 10_MQTT" hin, nicht aus Start-Log... Meldung über undefinierte Routine bedeutet, dass Broker-Client-Modul (00_MQTT) nicht geladen ist. Wie soll das gehen, wenn dieses da ist und verbunden ist...

Hast Du etwas mehr Log?

Ansonsten wäre eine gute Alternative als Broker-Clienbt MQTT2_CLIENT zu versuchen. In Verbindung mit MQTT2_DEVICE oder MQTT_GENERIC_BRIDGE. Die letzte braucht nur einmal definiert zu werden und ersetzt alle bischerigen MQTT_DEVICE und MQTT_BRIDGE, als auch MQTT2_DEVICE Instanzen. Die eigentliche MQTT-Konfiguration wird dann in jeweiligen FHEM-Gerät (oder eben einem Dummy) vorhgenommen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ag21368

Hallo, habe mal um alles nachzustellen nach jedem Schritt eine shutdown restart gemacht und jeweils das Log dazu geschrieben

Log vom Start ohne MQTT

2018.11.26 10:11:01 3: FHEMWEB WEB CSRF error: csrf_49990276433428 ne csrf_282300385066346 for client WEB_192.168.2.179_52409 / command save. For details see the csrfToken FHEMWEB attribute.
2018.11.26 10:11:01 1: RMDIR: ./restoreDir/save/2018-11-22
2018.11.26 10:11:41 1: Including fhem.cfg
2018.11.26 10:11:41 3: telnetPort: port 7072 opened
2018.11.26 10:11:41 3: WEB: port 8083 opened
2018.11.26 10:11:41 3: WEBphone: port 8084 opened
2018.11.26 10:11:41 3: WEBtablet: port 8085 opened
2018.11.26 10:11:41 2: eventTypes: loaded 230 events from ./log/eventTypes.txt
2018.11.26 10:11:41 1: Including ./log/fhem.save
2018.11.26 10:12:01 0: Server shutdown
2018.11.26 10:12:03 1: Including fhem.cfg
2018.11.26 10:12:03 3: telnetPort: port 7072 opened
2018.11.26 10:12:04 3: WEB: port 8083 opened
2018.11.26 10:12:04 3: WEBphone: port 8084 opened
2018.11.26 10:12:04 3: WEBtablet: port 8085 opened
2018.11.26 10:12:04 2: eventTypes: loaded 230 events from ./log/eventTypes.txt
2018.11.26 10:12:04 1: Including ./log/fhem.save
2018.11.26 10:12:04 1: usb create starting
2018.11.26 10:12:04 3: Probing CUL device /dev/ttyAMA0
2018.11.26 10:12:05 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.11.26 10:12:05 3: Probing ZWDongle device /dev/ttyAMA0
2018.11.26 10:12:05 3: Probing FRM device /dev/ttyAMA0
2018.11.26 10:12:10 3: Probing CUL device /dev/ttyS0
2018.11.26 10:12:10 1: CUL: Can't open /dev/ttyS0: Permission denied
2018.11.26 10:12:10 1: usb create end
2018.11.26 10:12:10 0: Featurelevel: 5.9
2018.11.26 10:12:10 0: Server started with 54 defined entities (fhem.pl:17779/2018-11-18 perl:5.024001 os:linux user:fhem pid:11501)


Log vom Start mit MQTT aber ohne Devices

2018.11.26 10:14:06 1: Including fhem.cfg
2018.11.26 10:14:06 3: telnetPort: port 7072 opened
2018.11.26 10:14:06 3: WEB: port 8083 opened
2018.11.26 10:14:06 3: WEBphone: port 8084 opened
2018.11.26 10:14:06 3: WEBtablet: port 8085 opened
2018.11.26 10:14:06 2: eventTypes: loaded 230 events from ./log/eventTypes.txt
2018.11.26 10:14:06 1: Including ./log/fhem.save
2018.11.26 10:14:06 3: Opening broker device 127.0.0.1:1883
2018.11.26 10:14:06 3: broker device opened
2018.11.26 10:14:27 0: Server shutdown
2018.11.26 10:14:27 1: Shutdown executed
2018.11.26 10:14:30 1: Including fhem.cfg
2018.11.26 10:14:30 3: telnetPort: port 7072 opened
2018.11.26 10:14:30 3: WEB: port 8083 opened
2018.11.26 10:14:30 3: WEBphone: port 8084 opened
2018.11.26 10:14:30 3: WEBtablet: port 8085 opened
2018.11.26 10:14:30 2: eventTypes: loaded 230 events from ./log/eventTypes.txt
2018.11.26 10:14:31 1: Including ./log/fhem.save
2018.11.26 10:14:31 3: Opening broker device 127.0.0.1:1883
2018.11.26 10:14:31 3: broker device opened
2018.11.26 10:14:31 1: usb create starting
2018.11.26 10:14:31 3: Probing CUL device /dev/ttyAMA0
2018.11.26 10:14:31 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.11.26 10:14:32 3: Probing ZWDongle device /dev/ttyAMA0
2018.11.26 10:14:32 3: Probing FRM device /dev/ttyAMA0
2018.11.26 10:14:37 3: Probing CUL device /dev/ttyS0
2018.11.26 10:14:37 1: CUL: Can't open /dev/ttyS0: Permission denied
2018.11.26 10:14:37 1: usb create end
2018.11.26 10:14:37 0: Featurelevel: 5.9
2018.11.26 10:14:37 0: Server started with 55 defined entities (fhem.pl:17779/2018-11-18 perl:5.024001 os:linux user:fhem pid:11538)


Log vom Start mit MQTT und einem Device nicht möglich den FHEM startet nicht mehr

nach Aufruf von perl fhem.pl fhem.cfg.debug (identische zu fhem.cfg ausser des Pfades für die Lof Datei)  kommt dieses Log

2018.11.26 10:19:40 1: Including fhem.cfg.debug
2018.11.26 10:19:40 3: telnetPort: port 7072 opened
2018.11.26 10:19:41 3: WEB: port 8083 opened
2018.11.26 10:19:41 3: WEBphone: port 8084 opened
2018.11.26 10:19:41 3: WEBtablet: port 8085 opened
2018.11.26 10:19:41 1: define Logfile FileLog ./log/fhem-%Y-%m.log fakelog: Can't open ./log/fhem-2018-11.log: Permission denied
2018.11.26 10:19:41 2: eventTypes: loaded 233 events from ./log/eventTypes.txt
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_ACCEPTED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_MOST_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_DISCONNECT redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBREC redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBREL redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_LEAST_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_NOT_AUTHORIZED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PINGRESP redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_BAD_USER_NAME_OR_PASSWORD redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBCOMP redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_SUBSCRIBE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_SUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_QOS_EXACTLY_ONCE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBACK redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBSCRIBE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PUBLISH redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_PINGREQ redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_IDENTIFIER_REJECTED redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_SERVER_UNAVAILABLE redefined at /usr/local/share/perl/5.24.1/Net/MQTT/Constants.pm line 44, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Define redefined at ./FHEM/00_MQTT.pm line 106, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Undef redefined at ./FHEM/00_MQTT.pm line 135, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Delete redefined at ./FHEM/00_MQTT.pm line 141, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Shutdown redefined at ./FHEM/00_MQTT.pm line 148, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine onConnect redefined at ./FHEM/00_MQTT.pm line 156, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine onDisconnect redefined at ./FHEM/00_MQTT.pm line 163, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine onTimeout redefined at ./FHEM/00_MQTT.pm line 170, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine isConnected redefined at ./FHEM/00_MQTT.pm line 179, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine process_event redefined at ./FHEM/00_MQTT.pm line 186, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Set redefined at ./FHEM/00_MQTT.pm line 207, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine parseParams redefined at ./FHEM/00_MQTT.pm line 254, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine parsePublishCmdStr redefined at ./FHEM/00_MQTT.pm line 341, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine parsePublishCmd redefined at ./FHEM/00_MQTT.pm line 350, <$fh> line 281.2018.11.26 10:19:41 1: PERL WARNING: Subroutine Notify redefined at ./FHEM/00_MQTT.pm line 392, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/00_MQTT.pm line 400, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Start redefined at ./FHEM/00_MQTT.pm line 433, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Stop redefined at ./FHEM/00_MQTT.pm line 450, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Ready redefined at ./FHEM/00_MQTT.pm line 464, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Rename redefined at ./FHEM/00_MQTT.pm line 469, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Init redefined at ./FHEM/00_MQTT.pm line 479, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Timer redefined at ./FHEM/00_MQTT.pm line 488, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Read redefined at ./FHEM/00_MQTT.pm line 501, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_connect redefined at ./FHEM/00_MQTT.pm line 647, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_publish redefined at ./FHEM/00_MQTT.pm line 660, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_subscribe redefined at ./FHEM/00_MQTT.pm line 672, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_unsubscribe redefined at ./FHEM/00_MQTT.pm line 679, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_ping redefined at ./FHEM/00_MQTT.pm line 686, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_disconnect redefined at ./FHEM/00_MQTT.pm line 690, <$fh> line 281.2018.11.26 10:19:41 1: PERL WARNING: Subroutine send_message redefined at ./FHEM/00_MQTT.pm line 697, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine topic_to_regexp redefined at ./FHEM/00_MQTT.pm line 712, <$fh> line 281.2018.11.26 10:19:41 1: PERL WARNING: Subroutine client_subscribe_topic redefined at ./FHEM/00_MQTT.pm line 723, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine client_unsubscribe_topic redefined at ./FHEM/00_MQTT.pm line 742, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Client_Define redefined at ./FHEM/00_MQTT.pm line 759, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine Client_Undefine redefined at ./FHEM/00_MQTT.pm line 778, <$fh> line 281.2018.11.26 10:19:41 1: PERL WARNING: Subroutine client_attr redefined at ./FHEM/00_MQTT.pm line 783, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine notify_client_connected redefined at ./FHEM/00_MQTT.pm line 897, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine notify_client_disconnected redefined at ./FHEM/00_MQTT.pm line 902, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine notify_client_connection_timeout redefined at ./FHEM/00_MQTT.pm line 907, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine client_start redefined at ./FHEM/00_MQTT.pm line 912, <$fh> line 281.
2018.11.26 10:19:41 1: PERL WARNING: Subroutine client_stop redefined at ./FHEM/00_MQTT.pm line 944, <$fh> line 281.
Undefined subroutine &MQTT::DEVICE::client_attr called at ./FHEM/10_MQTT_DEVICE.pm line 232, <$fh> line 282.
#

folgender Code ist zu diesem Zeitpunkt dazu gekommen

define Klappe_S4 MQTT_DEVICE
attr Klappe_S4 userattr subscribeReading_state
attr Klappe_S4 IODev broker
attr Klappe_S4 alias Status Klappe
attr Klappe_S4 devStateIcon on:closeG off:close
attr Klappe_S4 eventMap ON:on OFF:off ON:Ein OFF:Aus ON:Auf OFF:ZU
attr Klappe_S4 group Stall_4
attr Klappe_S4 publishSet on off cmnd/Sonoff/Smarthome/Stall/Power4
attr Klappe_S4 room Stallanlage
attr Klappe_S4 subscribeReading_state stat/Sonoff/Smarthome/Stall/POWER4
attr Klappe_S4 webCmd on:off


Mehr kann ich da leider nicht mehr liefern. Sobald ich ein Device habe, geht nichts mehr. Ich komm nicht mehr weiter. Raspberry, FHEM und MQTT sind auf der aktuellen Version. Fehler finde ich auch keine

Beta-User

MQTT benötigt weitere Perl-Module (2, soweit ich mich entsinne). Sind diese Installiert?

Ansonsten: Den Tip von Hexenmeister mit MQTT2_CLIENT statt MQTT hast du wahrgenommen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ag21368

Falls du die meinst

sudo cpan install Net::MQTT:Simple
sudo cpan install Net::MQTT:Constants


ja habe ich installiert ohne Fehlermeldung

ag21368

in der Constants.pm Zeile 44 geht es wohl um den Import

Der Code aus der zeile ist
*{$pkg.'::'.$_} = sub () { $v };

der zusammengehörige Code

sub import {
  no strict qw/refs/; ## no critic
  my $pkg = caller(0);
  foreach (keys %constants) {
    my $v = $constants{$_};
    *{$pkg.'::'.$_} = sub () { $v };
  }
  foreach (qw/decode_byte encode_byte
              decode_short encode_short
              decode_string encode_string
              decode_remaining_length encode_remaining_length
              qos_string
              message_type_string
              dump_string
              connect_return_code_string
             /) {
    *{$pkg.'::'.$_} = \&{$_};
  }
}


Vielleicht kann man ja damit schon mehr sagen

hexenmeister

Ich muss gestehen, dieses Verhalten trat bis jetzt anscheinend bei niemanden auf und ist mir derzeit völlig unverständlich.
Mich würde auch noch List von dem Broker interessieren.

Versuche es trotzdem mit MQTT2_CLIENT (oder gar MQTT2_SERVER, wenn FHEM-Performance keine Rolle spielt oder du nur sehr wenige MQTT-Nachrichten erwartest (also nicht mehrere jede Sekunde)). Das könnte eine schnellere Problemlösung sein. Nachteile sind eher nicht zu erwarten (es gibt derzeit wohl Probleme mit Verbindungsabbrüchen mit SSL bei einigen Nutzer, ist aber schon in der Analyse).

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

ag21368

wie mache ich ein/das List vom Broker? Bin noch nicht so der Crack

Beta-User

Ist das ein Pi?

Nur ein Gedanke, aber wenn seltsame Phänomene auf einem Pi auftauchen ist es leider häufig eine inkonsistente SD-Karte...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Zitat von: Beta-User am 26 November 2018, 11:06:28
Nur ein Gedanke, aber wenn seltsame Phänomene auf einem Pi auftauchen ist es leider häufig eine inkonsistente SD-Karte...
Habe ich auch schon gedacht, aber dafür ist das Verhalten zu reproduzierbar.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Beta-User

Zitat von: hexenmeister am 26 November 2018, 11:28:41
Habe ich auch schon gedacht, aber dafür ist das Verhalten zu reproduzierbar.
...stimmt auch wieder; allerdings kann ich mich an einen Fall erinnern, in dem das ähnlich war: da war dann die Moduldatei kaputt - es fehlte einfach die hintere Hälfte. Wenn, dann müßte man hier vermutlich die Constants mal ansehen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ag21368

hier mal die Constants.pm


use strict;
use warnings;
package Net::MQTT::Constants;
$Net::MQTT::Constants::VERSION = '1.163170';
# ABSTRACT: Module to export constants for MQTT protocol


use Carp qw/croak/;

my %constants =
  (
   MQTT_CONNECT     => 0x1,
   MQTT_CONNACK     => 0x2,
   MQTT_PUBLISH     => 0x3,
   MQTT_PUBACK      => 0x4,
   MQTT_PUBREC      => 0x5,
   MQTT_PUBREL      => 0x6,
   MQTT_PUBCOMP     => 0x7,
   MQTT_SUBSCRIBE   => 0x8,
   MQTT_SUBACK      => 0x9,
   MQTT_UNSUBSCRIBE => 0xa,
   MQTT_UNSUBACK    => 0xb,
   MQTT_PINGREQ     => 0xc,
   MQTT_PINGRESP    => 0xd,
   MQTT_DISCONNECT  => 0xe,

   MQTT_QOS_AT_MOST_ONCE  => 0x0,
   MQTT_QOS_AT_LEAST_ONCE => 0x1,
   MQTT_QOS_EXACTLY_ONCE  => 0x2,

   MQTT_CONNECT_ACCEPTED                              => 0,
   MQTT_CONNECT_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION => 1,
   MQTT_CONNECT_REFUSED_IDENTIFIER_REJECTED           => 2,
   MQTT_CONNECT_REFUSED_SERVER_UNAVAILABLE            => 3,
   MQTT_CONNECT_REFUSED_BAD_USER_NAME_OR_PASSWORD     => 4,
   MQTT_CONNECT_REFUSED_NOT_AUTHORIZED                => 5,
  );

sub import {
  no strict qw/refs/; ## no critic
  my $pkg = caller(0);
  foreach (keys %constants) {
    my $v = $constants{$_};
    *{$pkg.'::'.$_} = sub () { $v };
  }
  foreach (qw/decode_byte encode_byte
              decode_short encode_short
              decode_string encode_string
              decode_remaining_length encode_remaining_length
              qos_string
              message_type_string
              dump_string
              connect_return_code_string
             /) {
    *{$pkg.'::'.$_} = \&{$_};
  }
}


sub decode_remaining_length {
  my ($data, $offset) = @_;
  my $multiplier = 1;
  my $v = 0;
  my $d;
  do {
    $d = decode_byte($data, $offset);
    $v += ($d&0x7f) * $multiplier;
    $multiplier *= 128;
  } while ($d&0x80);
  $v
}


sub encode_remaining_length {
  my $v = shift;
  my $o;
  my $d;
  do {
    $d = $v % 128;
    $v = int($v/128);
    if ($v) {
      $d |= 0x80;
    }
    $o .= encode_byte($d);
  } while ($d&0x80);
  $o;
}


sub decode_byte {
  my ($data, $offset) = @_;
  croak 'decode_byte: insufficient data' unless (length $data >= $$offset+1);
  my $res = unpack 'C', substr $data, $$offset, 1;
  $$offset++;
  $res
}


sub encode_byte {
  pack 'C', $_[0];
}


sub decode_short {
  my ($data, $offset) = @_;
  croak 'decode_short: insufficient data' unless (length $data >= $$offset+2);
  my $res = unpack 'n', substr $data, $$offset, 2;
  $$offset += 2;
  $res;
}


sub encode_short {
  pack 'n', $_[0];
}


sub decode_string {
  my ($data, $offset) = @_;
  my $len = decode_short($data, $offset);
  croak 'decode_string: insufficient data'
    unless (length $data >= $$offset+$len);
  my $res = substr $data, $$offset, $len;
  $$offset += $len;
  $res;
}


sub encode_string {
  pack "n/a*", $_[0];
}


sub qos_string {
  [qw/at-most-once at-least-once exactly-once reserved/]->[$_[0]]
}


sub message_type_string {
  [qw/Reserved0 Connect ConnAck Publish PubAck PubRec PubRel PubComp
      Subscribe SubAck Unsubscribe UnsubAck PingReq PingResp Disconnect
      Reserved15/]->[$_[0]];
}


sub dump_string {
  my $data = shift || '';
  my $prefix = shift || '';
  $prefix .= '  ';
  my @lines;
  while (length $data) {
    my $d = substr $data, 0, 16, '';
    my $line = unpack 'H*', $d;
    $line =~ s/([A-F0-9]{2})/$1 /ig;
    $d =~ s/[^ -~]/./g;
    $line = sprintf "%-48s %s", $line, $d;
    push @lines, $line
  }
  scalar @lines ? "\n".$prefix.(join "\n".$prefix, @lines) : ''
}



sub connect_return_code_string {
  [
   'Connection Accepted',
   'Connection Refused: unacceptable protocol version',
   'Connection Refused: identifier rejected',
   'Connection Refused: server unavailable',
   'Connection Refused: bad user name or password',
   'Connection Refused: not authorized',
  ]->[$_[0]] || 'Reserved'
}

__END__

=pod

=encoding UTF-8

=head1 NAME

Net::MQTT::Constants - Module to export constants for MQTT protocol

=head1 VERSION

version 1.163170

=head1 SYNOPSIS

  use Net::MQTT::Constants;

=head1 DESCRIPTION

Module to export constants for MQTT protocol.

=head1 C<FUNCTIONS>

=head2 C<decode_remaining_length( $data, \$offset )>

Calculates the C<remaining length> from the bytes in C<$data> starting
at the offset read from the scalar reference.  The offset reference is
subsequently incremented by the number of bytes processed.

=head2 C<encode_remaining_length( $length )>

Calculates the C<remaining length> bytes from the length, C<$length>,
and returns the packed bytes as a string.

=head2 C<decode_byte( $data, \$offset )>

Returns a byte by unpacking it from C<$data> starting at the offset
read from the scalar reference.  The offset reference is subsequently
incremented by the number of bytes processed.

=head2 C<encode_byte( $byte )>

Returns a packed byte.

=head2 C<decode_short( $data, \$offset )>

Returns a short (two bytes) by unpacking it from C<$data> starting at
the offset read from the scalar reference.  The offset reference is
subsequently incremented by the number of bytes processed.

=head2 C<encode_short( $short )>

Returns a packed short (two bytes).

=head2 C<decode_string( $data, \$offset )>

Returns a string (short length followed by length bytes) by unpacking
it from C<$data> starting at the offset read from the scalar
reference.  The offset reference is subsequently incremented by the
number of bytes processed.

=head2 C<encode_string( $string )>

Returns a packed string (length as a short and then the bytes of the
string).

=head2 C<qos_string( $qos_value )>

Returns a string describing the given QoS value.

=head2 C<message_type_string( $message_type_value )>

Returns a string describing the given C<message_type> value.

=head2 C<dump_string( $data )>

Returns a string representation of arbitrary data - as a string if it
contains only printable characters or as a hex dump otherwise.

=head2 C<connect_return_code_string( $return_code_value )>

Returns a string describing the given C<connect_return_code> value.

=head1 AUTHOR

Mark Hindess <soft-cpan@temporalanomaly.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Mark Hindess.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut