erledigt: Define myBroker MQTT localhost:1883 schlägt fehl

Begonnen von walterschmitz, 26 Januar 2018, 00:45:31

Vorheriges Thema - Nächstes Thema

walterschmitz

Hallo,

nachdem ich lt. Wiki https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung einen Define
DEFINE myBroker MQTT 127.0.0.1:1883 ausgeführt habe erhalte ich folgende Fehlermeldung:

2018.01.26 00:39:04 1 : reload: Error:Modul 00_MQTT deactivated: Can't locate Module/Pluggable.pm in @INC (you may need to install the Module::Pluggable module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM ./FHEM/lib) at FHEM/lib/Net/MQTT/Message.pm line 9. BEGIN failed--compilation aborted at FHEM/lib/Net/MQTT/Message.pm line 9. Compilation failed in require at ./FHEM/00_MQTT.pm line 78. BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 78.
2018.01.26 00:39:04 0 : Can't locate Module/Pluggable.pm in @INC (you may need to install the Module::Pluggable module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM ./FHEM/lib) at FHEM/lib/Net/MQTT/Message.pm line 9. BEGIN failed--compilation aborted at FHEM/lib/Net/MQTT/Message.pm line 9. Compilation failed in require at ./FHEM/00_MQTT.pm line 78. BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 78.


Während ich die CPAN-Befehle ausgeführt habe, erhielt ich folgende Meldungen, mit denen ich aber noch nichts anfangen kann:
Warning: Cannot install NET::MQTT:Simple, don't know what it is.
Try the command

    i /NET::MQTT:Simple/

to find objects with matching identifiers.
und
sudo cpan install NET::MQTT:Constants
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/root/.cpan/Metadata'
  Database was generated on Thu, 25 Jan 2018 22:17:03 GMT
Warning: Cannot install NET::MQTT:Constants, don't know what it is.
Try the command

    i /NET::MQTT:Constants/

to find objects with matching identifiers.

Evtl. ist hier der Grund zu finden, warum das MQTT Module nicht geladen werden könnte?

Kann mir jemand helfen, was ich als nächstest tun sollte?

digiart

Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

walterschmitz

#2
ne leider auch nicht.

also der "Kram" mit CPAN macht grad die Probleme denke ich.
Ich habe es nach dem verlinkten Thread mal versucht.
Der erste Teil sudo CPAN -i Net:MQTT::Simple erzeugt einen Fehler. Den Auszug habe ich entsprechend mal beigefügt:
sudo cpan -i Net::MQTT::Simple
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/root/.cpan/Metadata'
  Database was generated on Sat, 27 Jan 2018 00:17:02 GMT
Running install for module 'Net::MQTT::Simple'
Checksum for /root/.cpan/sources/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.21.tar.gz ok
'YAML' not installed, will not store persistent state
Configuring J/JU/JUERD/Net-MQTT-Simple-1.21.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Net::MQTT::Simple
Writing MYMETA.yml and MYMETA.json
  JUERD/Net-MQTT-Simple-1.21.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for J/JU/JUERD/Net-MQTT-Simple-1.21.tar.gz
cp lib/Net/MQTT/Simple/SSL.pm blib/lib/Net/MQTT/Simple/SSL.pm
cp lib/Net/MQTT/Simple.pm blib/lib/Net/MQTT/Simple.pm
cp bin/mqtt-simple blib/script/mqtt-simple
"/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/mqtt-simple
Manifying 1 pod document
Manifying 2 pod documents
  JUERD/Net-MQTT-Simple-1.21.tar.gz
  /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 PERL_USE_UNSAFE_INC=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/regex.t .. ok
t/use.t .... ok
All tests successful.
Files=2, Tests=561,  1 wallclock secs ( 0.36 usr  0.01 sys +  0.84 cusr  0.05 csys =  1.26 CPU)
Result: PASS
  JUERD/Net-MQTT-Simple-1.21.tar.gz
  /usr/bin/make test -- OK
Running make install
Manifying 1 pod document
Manifying 2 pod documents
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/man/man1'
mkdir /usr/local/man: File exists at /usr/share/perl/5.24/ExtUtils/Install.pm line 477.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
Makefile:727: die Regel für Ziel ,,pure_site_install" scheiterte
make: *** [pure_site_install] Fehler 17
  JUERD/Net-MQTT-Simple-1.21.tar.gz
  /usr/bin/make install  -- NOT OK

Ebenfalls und ähnlich sehen die Fehlermeldung von CPAN -i Net::MQTT::Constants aus. Wobei ich mir hier nicht sicher bin, ob die Fehler darauf beruhen, dass die ::Simple noch nicht sauber installiert sind.

Grundsätzlich... anders als im verlinkten Thread muss ich das ganze per sudo ausführen. Ohne das geht es gar nicht weiter, aber das denke ich, ist auch entsprechend so gewollt und war zu erwarten.

Damit hat sich der Teil in FHEM mit define myBroker MQTT IP:1883 auch noch erledigt.
Habe es trotzdem mal versucht und die Fehlermeldung aus dem Eventmonitor / Log dort lautet wie folgt:
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_BAD_USER_NAME_OR_PASSWORD redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_MOST_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_QOS_EXACTLY_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_IDENTIFIER_REJECTED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_NOT_AUTHORIZED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_SUBSCRIBE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_SUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.
2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PUBREC redefined

und aus dem EventMonitor
at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PINGRESP redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PUBACK redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_QOS_AT_LEAST_ONCE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PUBREL redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PUBLISH redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_UNSUBSCRIBE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_SERVER_UNAVAILABLE redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PINGREQ redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_PUBCOMP redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_CONNECT_ACCEPTED redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : PERL WARNING: Constant subroutine MQTT::MQTT_DISCONNECT redefined at FHEM/lib/Net/MQTT/Constants.pm line 44.2018.01.27 07:57:22 1 : reload: Error:Modul 00_MQTT deactivated:  Attempt to reload Net/MQTT/Message.pm aborted. Compilation failed in require at ./FHEM/00_MQTT.pm line 78. BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 78. 2018.01.27 07:57:22 0 : Attempt to reload Net/MQTT/Message.pm aborted. Compilation failed in require at ./FHEM/00_MQTT.pm line 78. BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 78. 2018-01-

und auf der FHEM Oberfläche wird weiterhin angezeigt:
Cannot load module MQTT

Kann mir jemand weiterhelfen?

Vielen Dank für Hilfe

dev0

Zitat
ERROR: Can't create '/usr/local/man/man1'
mkdir /usr/local/man: File exists at /usr/share/perl/5.24/ExtUtils/Install.pm line 477.
Schau ins filesystem und prüfe ob die Ordner vorhanden sind und die Berechtigunen passen.
Vielleicht hift auch ein Blick in Install.pm um Zeile 477, was dort geprüft/gemacht wird.

pink99panther

Hab jetzt nicht genau nachgesehen, ob Du es irgendwo geschrieben hast, aber wen das ein Raspi mit Rasbian Stretch ist
schau mal hier: STRETCH and MQTT

dev0

Was aus dem Thread soll dabei helfen Net:MQTT::Simple zu installieren?

walterschmitz

Zitat von: dev0 am 27 Januar 2018, 08:33:00
Schau ins filesystem und prüfe ob die Ordner vorhanden sind und die Berechtigunen passen.
Vielleicht hift auch ein Blick in Install.pm um Zeile 477, was dort geprüft/gemacht wird.

Also hier schon mal der Blick auf die Verzeichnisse:
pi@raspberrypi:/usr/local $ ls -la
insgesamt 40
drwxrwsr-x 10 root staff 4096 Jul  5  2017 .
drwxr-xr-x 11 root root  4096 Jul  5  2017 ..
drwxrwsr-x  2 root staff 4096 Jul  5  2017 bin
drwxrwsr-x  2 root staff 4096 Jul  5  2017 etc
drwxrwsr-x  2 root staff 4096 Jul  5  2017 games
drwxrwsr-x  2 root staff 4096 Jul  5  2017 include
drwxrwsr-x  6 root staff 4096 Sep 24 00:24 lib
lrwxrwxrwx  1 root staff    9 Jul  5  2017 man -> share/man
drwxrwsr-x  2 root staff 4096 Jul  5  2017 sbin
drwxrwsr-x  7 root staff 4096 Sep 24 00:13 share
drwxrwsr-x  2 root staff 4096 Jul  5  2017 src
pi@raspberrypi:/usr/local $ cd share
pi@raspberrypi:/usr/local/share $ ls
ca-certificates  emacs  fonts  sgml  xml
pi@raspberrypi:/usr/local/share $


man ist kein Verzeichnis sondern linkt auf share und dort ist auch kein man zu finden :-(
Warum nicht weiß ich nicht.
Wofür man es braucht, gerade auch nicht... aber warum wird sowas nicht automatisiert mit angelegt beim installieren... das frag ich mich gerade.
Aber okay.
Was soll ich tun? Die Verzeichnisse in share anlegen? mit welchen Berechtigungen?

walterschmitz

Zitat von: pink99panther am 27 Januar 2018, 08:45:31
Hab jetzt nicht genau nachgesehen, ob Du es irgendwo geschrieben hast, aber wen das ein Raspi mit Rasbian Stretch ist
schau mal hier: STRETCH and MQTT
und ja es ist ein Stretch Raspi...
und die debian_version zeigt 9.3 also Stretch.
Werde ich mir deinen Link auch mal anschauen :-)

Vielen Dank

pink99panther

Zitat von: dev0 am 27 Januar 2018, 08:49:37
Was aus dem Thread soll dabei helfen Net:MQTT::Simple zu installieren?

Schon gelesen, dass die allgemeinen Anleitungen bei STRETCH nicht mehr passen?

dev0

Ja. Aber Anleitung hin oder her: kann man unter STRETCH das benötigte Net:MQTT::Simple Perl Modul nicht mehr installieren? Das habe ich im verlinkten Thread nicht gelesen. Hab ich es überlesen?

pink99panther

Hab selbst noch kein STRETCH laufen.
Hab es auch nur zufällig unter anderem hier gelesen.

dev0

@walterschmitz: schau doch mal:
Zitat
pi@raspberrypi:/usr/local $ ls -la
man -> share/man
Zitat
pi@raspberrypi:/usr/local/share $ ls
ca-certificates  emacs  fonts  sgml  xml

Also zeigt /usr/local/man auf /usr/local/share/man, dass es nicht gibt. Leg mal /usr/local/share/man selbst an und berechtiges es mit root:root 775

walterschmitz

Vielen Dank. Ich habe einfach den Link man gelöscht und CPAN neu ausgeführt.
Beide CPAN's sind sauber durchgelaufen...

Danach ließ sich auch der Broker in FHEM anlegen.
Vielen Dank. Der Hinweis auf den man... den ich vorher schon im Auge hatte, der war schließlich der ausschlaggebende Hinweis.

Somit!! --> Erledigt!!!