Hallo,
nach stundenlangen Kampf habe ich einen Sonoff Basic in Fhem zum Laufen gebracht. Der entscheidende Hinweis kam aus dem Forum. Mit dem Aufruf mosquitto -d
erst funktioniert der Broker.
Nach PI Neustart muss der Parameter erneut händisch aufgerufen werden.
Ich habe Jessi installiert.
1) Gibt es dazu eine Lösung / Workaround oder
2) wie kann ich den Aufruf in den FHEM- Start mit reinpacken
Gruß Günter
Hallo Günter,
für mich liest sich deine Problemschilderung wie eine nicht korrekt abgeschlossene Mosquitto Installation.
Der Befehl, der den "Dienst/daemon/service" Mosquitto Broker startet, sollte nach erfolgreicher Installation gemäß dieser (https://wiki.fhem.de/wiki/MQTT_Einf%C3%BChrung#Installation_in_FHEM) Anleitung nach dem Systemstart zur Verfügung stehen (Jessie-Hinweis beachten!).
Was gibt denn der beschriebene Test unmittelbar nach einem Neustart aus
sudo service mosquitto status
Ich hoffe, es hilft,
Gernot
Hallo Gernot,
vielen Dank für den Hinweis. Natürlich habe ich mich an die Anleitung (Jessi) gehalten.
Hier das Ergebnis nach dem Reboot:
[/pi@raspberrypi:~ $ sudo service mosquitto status
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto)
Active: active (exited) since Wed 2018-06-20 11:12:21 CEST; 59s ago
Process: 484 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Jun 20 11:12:21 raspberrypi mosquitto[484]: Starting network daemon:: mosquitto.
Jun 20 11:12:21 raspberrypi systemd[1]: Started LSB: mosquitto MQTT v3.1 mes....
Hint: Some lines were ellipsized, use -l to show in full.
code]
[code]pi@raspberrypi:~ $ mosquitto_sub -d -v -t \#
Error: Connection refused
Erst wenn ich mosquitto -d eingebe funktioniert der Broker, schon witzig ...
pi@raspberrypi:~ $ mosquitto -d
pi@raspberrypi:~ $ mosquitto_sub -d -v -t \#
Client mosqsub|1111-raspberryp sending CONNECT
Client mosqsub|1111-raspberryp received CONNACK (0)
Client mosqsub|1111-raspberryp sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0)
Client mosqsub|1111-raspberryp received SUBACK
Subscribed (mid: 1): 0
Client mosqsub|1111-raspberryp received PUBLISH (d0, q0, r1, m0, 'tele/Wegelicht/LWT', ... (6 bytes))
tele/Wegelicht/LWT online
Es hängt eindeutig an dem Port 1883, der erst mit dem Parameter -d für Mosquitto sichtbar wird.
Falls das so nicht geht, wie baue ich dann den Aufruf in die Fhem-Start-Datei ein und wird diese beim Update nicht überschrieben?
Gruß Günter
Hallo,
hier noch im Forum den richtigen Hinweis gefunden:
[/https://forum.fhem.de/index.php?topic=68171.0code]
Habe den Befehl: mosquitto -d einfach wie beschieben in die fhem Startdatei eingetragen, nun ist Mosquitto nach dem Neustart nutzbar.
Gruß Günter
Was hast du den für eine Debian Version? Jessy oder Stretch?
Kannst du damit nachschauen: sudo cat /etc/apt/sources.list
Wer etwas über das verwendete OS wissen will: uname verwenden, siehe
https://linux.die.net/man/1/uname
Ansonsten ist es nicht linux-like, "fremde" startscripte zu verbiegen. Hier wäre ein eigener Eintrag sinnvoller (init.d oder systemd, was einem bei jessie (!) lieber ist) bzw. ggf. ein Problem report an der richtigen Stelle.
Just my2ct.
Beta-User
Zitat von: Beta-User am 20 Juni 2018, 12:28:17
Wer etwas über das verwendete OS wissen will: uname verwenden, siehe
https://linux.die.net/man/1/uname
Ansonsten ist es nicht linux-like, "fremde" startscripte zu verbiegen. Hier wäre ein eigener Eintrag sinnvoller (init.d oder systemd, was einem bei jessie (!) lieber ist) bzw. ggf. ein Problem report an der richtigen
Mit uname kriegst du nicht raus, welche Version er installiert hat.
Es kann ja sein, das er Stretch hat und die Anleitung für Jessy verwendet hat?!
Ich habe Stretch und bei mir musste ich nur apt-get install mosquitto ausführen, ohne was an der sources.list zu verändern.
Auch wurde das direkt ins init übernommen, also so das mosquitto bei Systemstart gestartet wird.
Nutze auch stretch (pure i386-debian), und mosquitto läuft ootb (in den Sourcen fehlende perl-Pakete mit dh-make-perl debianisiert).
Wenn er allerdings irgend einen Hau in die Sourcenliste gebaut hat, wird er genau den nicht finden, wenn er dort sucht, daher der Hinweis.
Ansonsten hilft evtl. "cat /etc/os-release".