Seite 1 von 1

MQTT und JSON

Verfasst: Do Apr 23, 2020 9:39 am
von Eberhard
In meiner beruflichen Laufbahn wurde ich mit dem Problem konfrontiert, mehrer hundert Einzelwerte pro Sekunde zu übermitteln. Dies ging vom lokalem Netzwerk bis zu langsamen Übertragsungsmedien, anfänglich noch per Datex-P. Gelöst wurde das durch Named-Pipes, die dahinter liegende Transportschicht fügte mehrere Telegramme zu Paketen zusammen, die noch komprimiert und verschlüsselt wurden. Das war vor 30 Jahren, da gabs anfänglich nur Netbios mit ipx und spx, später dann TCP/IP.
Heute hat man dafür MQTT.
Ich sehe schon eine starke Belastung der Raspis, wenn ich jede Sekunde die Werte vom meinen E3DC einlese (jede Sekunde ein Datenpaket). Daraus generiere ich zur Zeit 12 Einzelnachrichten an openWB. Es wäre wesentlich effizienter diese in einer einzigen Nachricht im JSON Format zu übermitteln. Was dann noch fehlt, ist ein TIMESTAMP zu jedem Einzelwert, damit es nicht zu einer fehlerhaften zeitlichen Zuordnung der Werte kommt.

Re: MQTT und JSON

Verfasst: Do Apr 23, 2020 10:12 am
von openWB
JSON bedingt aber das ver- und entpacken der daten.
Zudem beträgt der Overhead an Bandbreite gerne Faktor 2-8 je nach Daten wenn die nochmal „verpackt“ werden.
MQTT ist exakt fur diesen Fall wie in openWB genutzt konzipiert.
Sprich bewusst separate Topics und nur raw Werte.

Das funktioniert perfekt und die Last ist minimal.

Kannst es ja mal testen, unter 5000 Msgs / Sekunde langweilt sich der Pi. Davon ab wäre ein einfacher zugriff ohne daten wieder zu entpacken nicht so einfach möglich.

Schlussendlich brauchst du die daten auch nur alle 10 sekunden senden, öfter werden sie nicht verwertet.