MQTT Client und Broker für Raspberry

Rund um die LCL und andere Komponenten
Timm Thaler
Beiträge: 1222
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: MQTT Client und Broker für Raspberry

Beitrag von Timm Thaler »

af0815 hat geschrieben:
Do 11. Jul 2019, 14:55
Schau dir mal folgendes an https://github.com/afriess/mqtt/tree/LessDepends ...
LNet versorgt den MQTTClient mit Daten, das ist am Anfang ein wenig Tricky, aber wenn läuft, dann läuft es. Das Beispiel des Clients kann man nehmen, wenn man die Abhängigkeit nach bkutils löscht, das Paket mqttcompontslessdepend verwendet und bei lnet SSl ausschaltet.
Ich hänge da gerade dran, wie schalte ich SSL bei Lnet aus?

Ich habe jetzt die Version mit Lnet und eine mit Synapse im Test. Beide scheinen mir sehr aufwendig für so ein bißchen Kommunikation, geht das echt nicht einfacher?

Was ist zukunfstfähiger, wird besser unterstützt? Sowohl Lnet als auch Synapse scheinen irgendwie 2011 stehengeblieben zu sein.

Ich nehme an, mit fpc-web läßt sich das nicht realisieren, oder?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5483
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: MQTT Client und Broker für Raspberry

Beitrag von af0815 »

Synapse ist nicht ganz stehen geblieben, es wird hin und wieder was gefixt. Nur ja nicht den stable verwenden, der ist der old-stable. Trunk ist bei Synapse der aktuelle stable :-)

LNet kann ich nicht sagen. Nur es hat sich seit 2011 nicht wirklich viel bei den Sockets Plattform-übergreifend getan. fpc-web ist mir bei den Sockets zu sehr auf web zentriert und bietet nicht die Dienste was LNet oder Synapse bieten. Bin aber da nicht auf den letzen Stand.

MQTT ist leider komplexer als ich ursprünglich gedacht habe. Ich musst es bei einem Energiemessgerät verwenden, deshalb habe ich mich überhaupt damit beschäftigt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Timm Thaler
Beiträge: 1222
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: MQTT Client und Broker für Raspberry

Beitrag von Timm Thaler »

Also wenn ich mir das mit Wireshark ansehe scheint mir nicht dass da sonderlich viel gesendet wird. Dafür scheint mir der Aufwand der da mit Synapse oder Lnet und dem ganzen Drumherum mit Threads getrieben wird reichlich hoch.

Ich versuche nur einen einfachen Client zu bauen der Messwerte an einen Broker published. Der muss nicht mal die Verbindung halten: Connect, Publish, Disconnect würde reichen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5483
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: MQTT Client und Broker für Raspberry

Beitrag von af0815 »

Einfachste Version ist, dann den Messwert über die Kommandozeilen Tools von MQTT zu senden.

Siehe auch https://www.modius-techblog.de/smart-ho ... pberry-pi/
mosquitto_pub -d -t test -m "Hello world!"
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MQTT Client und Broker für Raspberry

Beitrag von mschnell »

Timm Thaler hat geschrieben:
Fr 12. Jul 2019, 17:29
Nein, der Hauptgrund gegen Datenbanken, vor allem gegen sowas wie RoundRobin auf dem Pi war, dass die Daten ständig neu an die gleichen Speicherstellen geschrieben werden, was bekanntlich der SD-Karte nicht zuträglich ist.
Das stimmt nicht (Es stimmt für Flassh-Chips). SD-Karten, USB-Stic, und SSDs haben ein interne Ware-Leveling. Es ist egal, auf welche Adresse geschrieben wird.
-Michael

7bit
Beiträge: 4
Registriert: So 24. Jul 2011, 17:09

Re: MQTT Client und Broker für Raspberry

Beitrag von 7bit »

Hier bastel ich grad einen neuen schlanken MQTT clienten:

https://github.com/prof7bit/fpc-mqtt-client

Ich verwende nur die bei FPC mitgelieferten units (TINetSocket aus fcl-net/ssockets und sslsockets), kein synapse, kein lnet, etc. Die Protokollversion ist 5, getestet mit aktuellem mosquitto. Die Benutzung beschränkt sich auf wenige Zeilen Code: Komponente erzeugen, connect() aufrufen, subscribe() aufrufen (mit topic filter und Callback als Argument) und/oder publish() aufrufen um was zu senden. Ein simples Demo-Programm ist dabei.

schoschy
Beiträge: 3
Registriert: Di 18. Okt 2022, 15:46

Re: MQTT Client und Broker für Raspberry

Beitrag von schoschy »

Moin,
eventuell hilft das git Projekt:
https://github.com/bkeevil/mqtt
Ich hab MQTT selbst geschrieben gehabt, auf ein Byte Senden/Empfangen (Header). Das ging gut bis die Daten mal größer wurden.
Die git-Version nutze ich, wenn mehr Daten im Payload erwartet werden. - Also alle Daten die nicht von mir kommen. :lol:

Grüße

Antworten