Forum: Haus & Smart Home Mqtt Broker einrichten


von SmartHome (Gast)


Lesenswert?

Guten Morgen,

ich möchte einen Mqtt Broker einrichten wobei ein User-Account benutzt 
werden soll. Das Senden und Empfangen von Mqtt Nachrichten funktionieret 
soweit.
Allerdings habe icxh da etwas Probleme bei der Konfiguration eines 
User-Accounts.

Ich habe das mal so versucht einzurichtern wie auf folgender Seite 
beschrieben:

https://plantprogrammer.de/mqtt-auf-dem-raspberry-pi-mosquitto/

von fragen (Gast)


Lesenswert?

Fragen haben einen Text und am Ende ein Fragezeichen.
Ich sehe keine Frage, nur eine Ankündigung etwas zu tun. Mach mal...

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Und was ist das Problem?

von SmartHome (Gast)


Lesenswert?

Mein Problem ist, dass der Abschnitt "Konfiguration User-Accounts" so 
wie auf der Seite beschrieben wird nicht bei mir funktioniert. Es sollen 
quasi nur Nachrichten gepublished werden die auch in der Liste stehen.

von SmartHome (Gast)


Lesenswert?

Für eine Testanwendung soll auf dem raspberry pi ein Broker und auch 
Subscriber laufen.

von Johannes S. (Gast)


Lesenswert?

SmartHome schrieb:
> gepublished

man könnte auch einfach 'publiziert' schreiben.

Und was für eine Liste? In der Konfiguration werden Benutzer/Passwort 
Kombinationen angelegt. Wenn sich niemand für ein Topic interessiert, 
dann hat der Broker auch nichts zu verteilen. An wen sollte er was 
schicken wenn es keinen Abonnenten gibt?

von fragen (Gast)


Lesenswert?

mehr Salami für alle...

von SmartHome (Gast)


Lesenswert?

Auf dem raspberry pi läuft ein MqttServer und auch zyklisch werden Daten 
per Publish versendet. Auf der PC Seite habe ich eine weitere Anwendung 
mit der die Daten emfangen und angezeigt werden. Was mir nun da auffällt 
ist, wenn dewr Server nicht mehr läuft die Daten trotzdem versendet und 
emfangen werden können. Oder gibt es da noch explizet eine Funktion mit 
der ich den Server stoppen kann? Und wo werden die Daten auf dem Broker 
abgelegt?

Ich benütze auf der raspberry pi Seite "import paho.mqtt.client" und auf 
der PC Seite das .Net Packet "M2MQTTDotNetcore"

von SmartHome (Gast)


Lesenswert?

Noch eine weitere Frage. Gibt es eine Alternative zu dem .NET Paket 
M2MqttDotnetCore für C#?

von Sascha W. (sascha-w)


Lesenswert?

SmartHome schrieb:
> Auf dem raspberry pi läuft ein MqttServer
Ok
> und auch zyklisch werden Daten
> per Publish versendet.
von wem?
> Auf der PC Seite habe ich eine weitere Anwendung
> mit der die Daten emfangen und angezeigt werden.
> Was mir nun da auffällt
> ist, wenn dewr Server nicht mehr läuft die Daten trotzdem versendet und
> emfangen werden können.
das kann nicht sein
> Oder gibt es da noch explizet eine Funktion mit
> der ich den Server stoppen kann?
Mosqitto läuft als Dienst den kannst du mit
sudo systemctl stop mosqitto
anhalten
> Und wo werden die Daten auf dem Broker
> abgelegt?
im Normalfall speichert der Broker keine Daten, was reinkommt wird 
sofort weiter verteilt. Wenn sich ein Client später anmeldet bekommt er 
keine Nachrichten aus der Vergangenheit.
Ausnahmen sind Nachrichten mit gesetztem Retain-Flag und LWT, dafür 
gibts eine Datenbank wird auch irgendwo in der Konfig eingestellt
>
> Ich benütze auf der raspberry pi Seite "import paho.mqtt.client" und auf
> der PC Seite das .Net Packet "M2MQTTDotNetcore"

Sascha

: Bearbeitet durch User
von mqttester (Gast)


Lesenswert?

retain flag gesetzt beim publish?

von Sascha W. (sascha-w)


Lesenswert?

mqttester schrieb:
> retain flag gesetzt beim publish?
ja - wo sonst?

und in der config
1
persistence true
2
persistence_location /var/lib/mosquitto/

Sascha

von SmartHome (Gast)


Lesenswert?

Guten Morgen, vielen Dank für eure Untersützung.
Das retain Flag ist gesetzt. Das mit dem Stoppen des MQTT Broker 
funktioniert nicht. Ich kann nach wie vor Daten veröffentlichen und auch 
empfangen.

von SmartHome (Gast)


Lesenswert?

Nachdem ich das erstemal den mosquitto gestoppt habe hat es auch mal 
funktioniert:
1
sudo systemctl stop mosquitto

Danach habe ich den mosquitto wieder gestartet und danach lässt sich 
mosquitto nicht mehr stoppen. Wenn ich
1
sudo systemctl restart mosquitto
 ausführe erscheint die Meldung:
1
ob for mosquitto.service failed because the control process exited with error code.
2
See "systemctl status mosquitto.service" and "journalctl -xe" for details.

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Und was geben
1
systemctl status mosquitto.service
und
1
journalctl -xe
aus?

: Bearbeitet durch User
von SmartHome (Gast)


Lesenswert?

>>systemctl status mosquitto.service
1
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Service RestartSec=100ms expired, scheduling restart.
2
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
3
Jun 22 07:48:04 raspberrypi systemd[1]: Stopped Mosquitto MQTT v3.1/v3.1.1 Broker.
4
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Start request repeated too quickly.
5
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Failed with result 'exit-code'.
6
Jun 22 07:48:04 raspberrypi systemd[1]: Failed to start Mosquitto MQTT v3.1/v3.1.1 Broker.

journalctl -xe
1
Jun 22 07:48:03 raspberrypi systemd[1]: mosquitto.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
2
-- Subject: Unit process exited
3
-- Defined-By: systemd
4
-- Support: https://www.debian.org/support
5
--
6
-- An ExecStart= process belonging to unit mosquitto.service has exited.
7
--
8
-- The process' exit code is 'exited' and its exit status is 3.
9
Jun 22 07:48:03 raspberrypi systemd[1]: mosquitto.service: Failed with result 'exit-code'.
10
-- Subject: Unit failed
11
-- Defined-By: systemd
12
-- Support: https://www.debian.org/support
13
--
14
-- The unit mosquitto.service has entered the 'failed' state with result 'exit-code'.
15
Jun 22 07:48:03 raspberrypi systemd[1]: Failed to start Mosquitto MQTT v3.1/v3.1.1 Broker.
16
-- Subject: A start job for unit mosquitto.service has failed
17
-- Defined-By: systemd
18
-- Support: https://www.debian.org/support
19
--
20
-- A start job for unit mosquitto.service has finished with a failure.
21
--
22
-- The job identifier is 8411 and the job result is failed.
23
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Service RestartSec=100ms expired, scheduling restart.
24
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Scheduled restart job, restart counter is at 5.
25
-- Subject: Automatic restarting of a unit has been scheduled
26
-- Defined-By: systemd
27
-- Support: https://www.debian.org/support
28
--
29
-- Automatic restarting of the unit mosquitto.service has been scheduled, as the result for
30
-- the configured Restart= setting for the unit.
31
Jun 22 07:48:04 raspberrypi systemd[1]: Stopped Mosquitto MQTT v3.1/v3.1.1 Broker.
32
-- Subject: A stop job for unit mosquitto.service has finished
33
-- Defined-By: systemd
34
-- Support: https://www.debian.org/support
35
--
36
-- A stop job for unit mosquitto.service has finished.
37
--
38
-- The job identifier is 8476 and the job result is done.
39
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Start request repeated too quickly.
40
Jun 22 07:48:04 raspberrypi systemd[1]: mosquitto.service: Failed with result 'exit-code'.
41
-- Subject: Unit failed
42
-- Defined-By: systemd
43
-- Support: https://www.debian.org/support
44
--
45
-- The unit mosquitto.service has entered the 'failed' state with result 'exit-code'.
46
Jun 22 07:48:04 raspberrypi systemd[1]: Failed to start Mosquitto MQTT v3.1/v3.1.1 Broker.
47
-- Subject: A start job for unit mosquitto.service has failed
48
-- Defined-By: systemd
49
-- Support: https://www.debian.org/support
50
--
51
-- A start job for unit mosquitto.service has finished with a failure.
52
--
53
-- The job identifier is 8476 and the job result is failed.
54
Jun 22 07:50:50 raspberrypi rngd[424]: stats: bits received from HRNG source: 2960064
55
Jun 22 07:50:50 raspberrypi rngd[424]: stats: bits sent to kernel pool: 2911776
56
Jun 22 07:50:50 raspberrypi rngd[424]: stats: entropy added to kernel pool: 2911776
57
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2 successes: 148
58
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2 failures: 0
59
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2(2001-10-10) Monobit: 0
60
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2(2001-10-10) Poker: 0
61
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2(2001-10-10) Runs: 0
62
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2(2001-10-10) Long run: 0
63
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS 140-2(2001-10-10) Continuous run: 0
64
Jun 22 07:50:50 raspberrypi rngd[424]: stats: HRNG source speed: (min=327.887; avg=538.900; max=550.409)Kibits/s
65
Jun 22 07:50:50 raspberrypi rngd[424]: stats: FIPS tests speed: (min=7.554; avg=13.191; max=31.268)Mibits/s
66
Jun 22 07:50:50 raspberrypi rngd[424]: stats: Lowest ready-buffers level: 2
67
Jun 22 07:50:50 raspberrypi rngd[424]: stats: Entropy starvations: 0
68
Jun 22 07:50:50 raspberrypi rngd[424]: stats: Time spent starving for entropy: (min=0; avg=0.000; max=0)us

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

starte mosquitto mal auf der shell
1
sudo /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
- da ist er etwas gesprächiger (evl. noch -v)

ich vermute du hast dir irgendeinen Fehler in der Config eingebaut oder 
an den Berechtigungen was verstellt, was natürlich erst auffällt wenn 
man den Dienst neu startet

ansonsten häng' mal die Konfigdatei an, oder ersetze sie durch eine 
Standartconfig (z.B. durch die aus dem Github repository von mosquitto 
https://github.com/eclipse/mosquitto )

mehr als das
1
pid_file /var/run/mosquitto.pid
2
3
persistence true
4
persistence_location /var/lib/mosquitto/
5
6
log_dest file /var/log/mosquitto.log
7
log_type error
8
log_type warning
9
10
connection_messages true
11
log_timestamp true
muss erst mal nicht drinstehen

Sascha

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.