Changes between Initial Version and Version 1 of MqttTopicStruktur


Ignore:
Timestamp:
Aug 16, 2020, 3:59:47 PM (6 years ago)
Author:
Johannes Lode
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MqttTopicStruktur

    v1 v1  
     1= MQTT Topic-Struktur
     2
     3[[PageOutline(2-6)]]
     4
     5== Topics eines Gerätes
     6
     7Jedes Gerät meldet sich bei seinem Location-Broker an. Die Location-Broker sind für die verschiedenen Etagen aufgeteilt. Es sind folgende Location-Broker definiert:
     8
     9* Keller: `ug-broker.mqtt.p21.net:1884`
     10* Erdgeschoss: `eg-broker.mqtt.p21.net:1885`
     11* 1. Obergeschoss: `og1-broker.mqtt.p21.net:1886`
     12* 2. Obergeschoss: `og2-broker.mqtt.p21.net:1887`
     13* !Hof/Garten: `yard-broker.mqtt.p21.net:1888`
     14* tragbare Geräte: `moving-broker.mqtt.p21.net:1889`
     15
     16Diese Broker sind vorerst alle auf dem selben Host realisiert, daher benötigen sie entweder unterschiedliche IP-Aliase (knappe Ressource IP-Adressen) oder unterschiedliche Port-Nummern (gewählte Option). Mehr in MqttBroker.
     17
     18Diese Location-Broker werden durch (Self-)Bridging in die Gesamtstruktur abgebildet. Daher darf jedes Gerät eine sehr einfache Topic-Struktur verwenden.
     19
     20Die Topic-Struktur orientiert sich an den Möglichkeiten der Tasmota-Software, weil diese die ersten Geräte stellt und bereits bewährte Strukturen abbildet.
     21
     22Geräte-Topics sind folgendermaßen strukturiert: \\
     23`%prefix%/%topic%/%keyword%` \\
     24`%prefix%/%topic%/%keyword%/%metadata%...`
     25
     26 `%prefix%`:: beschreibt die Datenart, es sind folgende Datenarten definiert:
     27 * `cmd`: Kommandos an das Gerät
     28 * `log`: Meldungen vom Gerät, z.B. Sensor-Werte
     29 * `feedback`: Status-Meldungen des Gerätes, i.d.R. als Reaktion auf Kommandos
     30 * `actuator`: direkter Zugriff auf einen Aktor eines Gerätes, benannt durch `%keyword%`
     31 * `sensor`: direkte Meldungen eines Sensors eines Gerätes, benannt durch `%keyword%`
     32 `%topic%`:: benennt das Gerät, den !Sensor/Aktor, die angesprochene Gruppe etc., welches auch Ort-Informationen tragen darf, ggf. mit Topic-Separator `/`, so daß sich evtl. (noch ungern gesehen) tiefere Topic-Strukturen bilden
     33 `%keyword%`:: ist spezifisch für das Gerät, den Sensor, den Aktor, die Gruppe etc.
     34 `%metadata%`:: ist optional bzw. noch in Entwicklung, als Ideen stehen hier Konventionen anderer Systeme Pate, so z.B.:
     35 * https://homieiot.github.io/
     36 * https://tinkerman.cat/post/mqtt-topic-naming-convention
     37
     38Mehr Betrachtungen zum Topic-Tree unter folgenden URLs:
     39* https://pi3g.com/2019/05/29/mqtt-topic-tree-design-best-practices-tips-examples/
     40* https://raspberry-valley.azurewebsites.net/MQTT-Topic-Trees/
     41* https://d1.awsstatic.com/whitepapers/Designing_MQTT_Topics_for_AWS_IoT_Core.pdf