FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Christian72D am 10 November 2018, 14:49:16

Titel: Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 10 November 2018, 14:49:16
Wieso bekomme ich bei define mqtt MQTT 127.0.0.1:1883 die Fehlermeldung "Cannot load module MQTT"?

Die Dateien liegen auf dem Server und die Rechte sehen gut aus:

christian@fhem:/opt/fhem/FHEM$ ls -l 00_MQ*
-rw-r--r-- 1 fhem dialout 16549 Okt 23 08:08 00_MQTT2_SERVER.pm
-rw-rw-rw- 1 fhem dialout 31171 Sep 19 09:13 00_MQTT.pm


Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: rischbiter123 am 10 November 2018, 14:59:04
Moin,

Note: this module is based on Net::MQTT which needs to be installed from CPAN first.

dran gedacht?
LG

Andreas
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: kumue am 10 November 2018, 15:01:09
fehlende perl-module ?

schau mal hier
https://forum.fhem.de/index.php?topic=90547.0 (https://forum.fhem.de/index.php?topic=90547.0)
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 10 November 2018, 17:29:41
Darüber nachgedacht, statt mqtt mqtt2_client zu nutzen?
Dürfte manches vereinfachen...
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 10:11:46
Zitat von: Beta-User am 10 November 2018, 17:29:41
Darüber nachgedacht, statt mqtt mqtt2_client zu nutzen?
Dürfte manches vereinfachen...
Kannte ich noch nicht, klingt besser.

Dort bekomme ich aber auch eine Fehlermeldung, wenn ich es definieren möchte: define MQTT2_SERVER MQTT2_SERVER 1883.
Dann kommt "MQTT2_SERVER: Can't open server port at 1883: Address already in use"

Ich habe mal die fhem.cfg durchsucht, ich finde keinen Eintrag der auf den Port 1883 verweist.

Woher kann das kommen? Auf Port 1884 läuft er.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: OdfFhem am 11 November 2018, 10:26:20
Auf Port 1883 läuft vermutlich noch der "richtige" MQTT-Server ...
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 11 November 2018, 12:54:26
Achtung, bitte folgendes im Hinterkopf behalten:
Für mqtt2 entweder
- mosquitto + mqtt2_client + mqtt2_Device oder
- mqtt2_Server + mqtt2_device
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 14:57:12
Zitat von: OdfFhem am 11 November 2018, 10:26:20
Auf Port 1883 läuft vermutlich noch der "richtige" MQTT-Server ...
Ich bekomme folgndes angezeigt:

christian@fhem:~$ sudo apt-get remove mosquitto mosquitto-clients
[sudo] password for christian:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  libc-ares2 libev4 libmosquitto1 libwebsockets8
Verwenden Sie »sudo apt autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
  mosquitto mosquitto-clients
0 aktualisiert, 0 neu installiert, 2 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 467 kB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]


Was ist denn da noch installiert?
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 15:06:19
Und was muß beim mqtt2_server bei "autcreate" drin stehen?

autocreate
If set, MQTT2_DEVICES will be automatically created upon receiving an unknown message.


1, on, enable, true?
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 11 November 2018, 17:02:33
Steht bei mir auf 1.

Mosquitto-clients kannst du installiert lassen; das enthält mosquitto_sub, und damit kann man auch den mqtt2-server "abhören", was manchmal nützlich ist.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 17:19:28
Ich habe Mosquitto jetzt erst mal doch deinstalliert.

Dann in fhm den Server auf 1883 gestellt und zur Sicherheit mal neu gestartet.

Internals:
   DEF        1883
   FD         23
   NAME       MQTT2_SERVER
   NR         458
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2018-11-11 17:12:18   nrclients       0
     2018-11-11 17:12:18   state           Initialized
   clients:
   retain:
Attributes:
   autocreate 1


Aber es wird keiner der bis jetzt 2 Clients gefunden.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 11 November 2018, 17:25:58
Die esp's hast du nach der Einrichtung des mqtt2-Servers mal neu gestartet?

Pw usw. passen?
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 19:01:41
Zitat von: Beta-User am 11 November 2018, 17:25:58
Die esp's hast du nach der Einrichtung des mqtt2-Servers mal neu gestartet?

Pw usw. passen?
Ja, die starten sich nach einer Änderung der MQTT Config automatisch neu.

Wo stelle ich die ein? Ich dachte rein intern bräuchte ich keins.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 11 November 2018, 19:21:54
Na ja, einheitlich halt. Habe nur die Punkte gesehen...
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 11 November 2018, 20:54:16
Nein, ich meinte muß ich was am Server einstellen?

In der Commandref steht: to set user/password use an allowed instance and its basicAuth feature (set/attr)

Wie richte ich DAS ein? Meine WEB Instanz ist nur intern verfügbar, also nicht geschützt.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 11 November 2018, 22:31:39
Allowed wird für mqtt2 eingerichtet wie für FHEMWEB auch. Hat nix miteinander zu tun, web und mqtt2. Kann aber gleich sein, das user/Passwort-Paar; dann einfach den mqtt2-Server mit als Instanz in das betr. allowed aufnehmen...
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 12 November 2018, 06:34:43
Ich habe damals über folgende Seite mein fhem eingerichtet und abgesichert: https://www.meintechblog.de/2016/05/fhem-server-auf-dem-raspberry-pi-in-weniger-als-einer-stunde-einrichten/ (https://www.meintechblog.de/2016/05/fhem-server-auf-dem-raspberry-pi-in-weniger-als-einer-stunde-einrichten/)

Dort steht zum Thema Absicherung:

ZitatSofern man auch außerhalb des eigenen Netzwerks auf FHEM zugreifen möchte, sollte man den Zugriff per Passwort sichern. Dazu zählt der klassische Webzugriff, der standardmäßig per Port 8083 erreichbar ist.

Als erstes muss man per Terminal einen Benutzernamen-Passwort-String im Base64-Format erzeugen. Das sieht dann bspw. so aus (jay ist der Benutzername und meintechblog das Passwort):

echo -n jay:meintechblog | base64

Als Ergebnis wird der String

amF5Om1laW50ZWNoYmxvZw==

ausgespuckt, welcher gleich in FHEM benötigt wird.

Im FHEM-Interface gelangt man über den Menüpunkt Everything und WEB zu den Parametereinstellungen des betreffenden Zugriffselements, welches den Webservice auf Port 8083 zur Vefügung stellt.

Hier wählt man das Attribut basicAuth (1) und trägt im nachfolgenden Textfeld den ermittelten base64-String ein (2).
Bestätigt wird die Eingabe über einen Druck auf den Button attr (3). Jetzt wird man bereits nach den gerade hinterlegten Logindaten gefragt, welche nun eingegeben werden müssen.

Das Attribut "basicAuth" finde ich beim MQTT2_Server aber nicht.
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 12 November 2018, 06:47:49
Warum nimmt du nicht die infos aus dem wiki? Raspberry pi und quick-start...
Da steht dann auch was von allowed!

Wer veraltete externe Quellen nutzt, braucht sich nicht zu wundern, wenn es nicht funktioniert.

Und warum nimmt du nicht einfach das Stichwort für die sufu, das steht einen (!) Beitrag weiter oben????
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Christian72D am 12 November 2018, 11:16:47
Ich habe fhem schon VOR dem verlinkten Artikel genutzt und den Server dann irgendwann als der Artikel raus kam neu aufgesetzt.
Keine Ahnung ob zum damaligen Zeitpunkt der Artikel schon veraltet war, aber ich denke nicht. Er weiß ja eigentlich was er schreibt.

Seitdem ist meine Config immer wieder umgezogen, aber ich habe nie wiederetwas komplett neu aufgesetzt.
Also wieso sollte ich dann bis jetzt die "allowed" Funktion hätte nutzen oder kennen sollen?

Seis drum: allowed ist eingerichtet, der MQTT2 Server findet trotzdem kein Gerät.

Internals:
   NAME       allowedWEB
   NR         459
   STATE      validFor:MQTT2_SERVER
   TYPE       allowed
   validFor   MQTT2_SERVER
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1542017242.69561
           VALUE      validFor:MQTT2_SERVER
   READINGS:
     2018-11-12 11:07:22   state           validFor:MQTT2_SERVER
Attributes:
   basicAuth  { "$user:$password" eq "christian:MEINPW" }
   validFor   MQTT2_SERVER


Den Basic habe ich geschaltet, der POW schickt sowieso eigentlich pausenlos Werte...
Titel: Antw:Ich bekomme MQTT nicht eingerichtet
Beitrag von: Beta-User am 12 November 2018, 13:00:52
Wie dem auch sei...
Habe ich das jetzt dahingehend richtig verstanden: es gibt 2 esp's, von denen nur einer als mqtt2-device per autocreate angelegt wird?
Was sagt das fhem-log dazu, was siehst du bei mosquitto_sub, wenn du den mqtt2-server damit abhörst? (Nicht irritieren lassen, dieser client spricht auch mit anderen Servern...)