MQTT und JSON

Fragen zur Nutzung, Features, usw..
Antworten
Eberhard
Beiträge: 59
Registriert: So Jul 14, 2019 9:29 pm

MQTT und JSON

Beitrag 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.
openWB
Site Admin
Beiträge: 8649
Registriert: So Okt 07, 2018 1:50 pm
Has thanked: 8 times
Been thanked: 47 times

Re: MQTT und JSON

Beitrag 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.
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
Antworten