Table of Contents
MQTT-Protokoll
Standardmäßig erfolgt die MQTT-Verbindung mit TLS gesichert auf den offiziellen OpenTrafficMap-MQTT-Server: mqtts://mqtt.opentrafficmap.org
Alle Topics haben als Präfix its/<nodeid>/, wobei <nodeid> durch die in der Config gesetzte Node-ID ersetzt wird, die pro Node eindeutig sein muss.
Vom Node gepublishte Topics:
infostatusstatspacketcommand_result
Vom Node subscribete Topics:
command
Im Folgenden werden die Topics in alphabetischer Reihenfolge im Detail beschrieben.
command
Kann gepublisht werden, um einen Befehl auf dem Node auszuführen. Der Statuscode (Erfolg/Fehler) wird vom Node auf command_result gepublisht.
Beispiel:
config_set ledbrightness 128
command_result
Wird vom Node nach dem Ausführen eines Befehls mit command gepublisht. Wenn der Befehl erfolgreich ausgeführt wurde, wird 0 gepublisht, sonst eine andere Zahl.
Wenn vor dem Ausführen ein Fehler auftritt, wird eine Fehlermeldung gepublisht.
info
Direkt nachdem die MQTT-Verbindung aufgebaut ist, publisht der Node eine Nachricht mit grundlegenden Daten zum Node im JSON-Format.
Derzeit sind das:
emac: Die Ethernet-MAC-Adresse des Nodesver: Die Version der aktuell laufenden Firmwarehwv: Die Hardware-Variante des Nodes
Beispiel:
{"emac":"3e:dc:75:01:23:45","ver":"0.5.1","hwv":"i5r-r1"}
stats
Alle 60 Sekunden werden in dieses Topic sich ständig ändernde Betriebsdaten des Nodes im JSON-Format gepublisht. Aktuell sind das:
temp: Die Temperatur vom LM75B-Temperatursensorrbt: Zeit in Sekunden seit dem letzten Neustart des Nodes
Beispiel:
{"temp":27.5,"rbt":224}
status
Dieses Topic wird für die “Will”-Nachricht verwendet. Wenn der Node online geht, publisht er selbst den Text online. Wenn der Node die Verbindung verliert, publisht der Server ohne Zutun des Nodes offline.
packet
Der Node publisht auf dieses Topic empfangene Frames als rohes 802.11 im Binärformat.
Achtung: Die derzeitige Implementation hängt wegen eines Bugs 8 Bytes Müll an jedes Frame an. In einer zukünftigen Version wird das behoben, und gleichzeitig ein neues Topic verwendet werden.
