MQTT wird im IoT häufig verwendet, wenn Anwendungsdaten zwischen dem Endgerät und dem Hostdienst ausgetauscht werden sollen. Das Publish-Subscribe-Modell macht es einfach zu bedienen: kein Handshake, Verhandeln usw. (zumindest über der MQTT-Protokollschicht). Es ist in erster Linie darauf ausgerichtet, dass Datenproduzenten ihre Daten problemlos an Verbraucher verteilen können.
Wenn es sich jedoch um einen zentralen Server handelt, der Einstellungen auf einem Endgerät konfigurieren möchte, bin ich mir nicht sicher, ob das Modell sehr gut geeignet ist. Der Server möchte einen Befehl an das Gerät senden und auf eine Antwort warten (z. B. eine bestimmte Einstellung lesen, auf eine Antwort warten), was nicht wirklich zum Publish-Subscribe-Modell von MQTT passt.
Ich habe mich gefragt, ob es Protokolle gibt, die auf das Senden und Empfangen von Befehlen und das Konfigurieren von Remote-Geräten ausgerichtet sind.
quelle
Antworten:
Klingt nach einem Job für CoAP :
Es kann anscheinend mit sehr geringem Aufwand implementiert werden :
CoAP ist in RFC 7252 angegeben , und es gibt verschiedene Implementierungen (z . B. in C ).
Es ist sehr stark von REST inspiriert, wie es mit HTTP für Web-APIs verwendet wird. Wenn Sie also mit diesen vertraut sind, werden Sie schnell CoAP lernen. Wenn nicht, ist diese Präsentation möglicherweise für den Kontext hilfreich . Die Idee ist, dass jede HTTP-Methode eine semantische Bedeutung hat, z. B.
GET
Informationen vom Gerät anfordert, ohne etwas zu ändernPOST
,PUT
undDELETE
die Daten zu mutieren.Wie Sie sagen, funktionieren Publish / Subscribe-Modelle nicht für Situationen, in denen Ihr Gerät als "Server" für die zentrale Systemkoordinierung fungiert (die für jedes Gerät als Client fungiert). Stattdessen ist ein Modell ähnlich wie HTTP ideal, außer dass HTTP viel zu viel Overhead hat, und hier kommt CoAP ins Spiel.
quelle
Ja, es gibt ein besseres Protokoll für die Geräteverwaltung im IoT. Es ist LwM2M - Es ist viel effizienter als MQTT und höher als COAP, MQTT und HTTP.
LwM2M wird mit einem genau definierten Daten- und Geräteverwaltungsmodell geliefert, das eine Vielzahl gebrauchsfertiger Standardobjekte (IPSO Smart Objects), Konnektivitätsüberwachung, Remote-Geräteaktionen und strukturierte FOTA- und SOTA-Updates bietet, während diese Funktionen in MQTT vollständig vorhanden sind hersteller- und plattformspezifisch. Was folgt ist, dass mit MQTT Firmware-Updates oder andere Verwaltungsfunktionen von Grund auf neu erstellt werden müssen. Im Gegensatz dazu bietet LwM2M Firmware-Upgrades als eine seiner Grundfunktionen an, sodass keine neuen Bausteine für die Kommunikation erfunden werden müssen.
Hier haben Sie Vergleich MQTT vs LwM2M und ganzen Crashkurs.
quelle