MQTT-Topics: Unterschied zwischen den Versionen

Aus c3RE.de
Wechseln zu: Navigation, Suche
(Bild Achsschema der Hütte eingefügt)
K (Kategorie:Infrastruktur)
 
Zeile 86: Zeile 86:
 
Siehe auch [[Can2mqtt]] [[MQTT]]
 
Siehe auch [[Can2mqtt]] [[MQTT]]
  
[[Category:Projekte]]
+
[[Category:Projekte]] [[Kategorie:Infrastruktur]]

Aktuelle Version vom 9. Februar 2020, 08:27 Uhr

Sensor/Aktor hinzufügen

Du hast einen Sensor oder Aktor den du mit an das CAN/MQTT Netzwerk anbinden möchtest? Great! Lies am besten kurz die Regeln unten und am Ende solltest du ein MQTT-Topic beisammen haben an das du Senden oder an dem du ab da lauschen solltest. Wenn du das mit den Achsen nicht verstehst nimm "000" oder frag den professionellen Achsenbezeichner deiner Wahl. Dann schreib am besten den mamu an der gibt dir dann eine CAN-ID und einen Eintrag in dem Verzeichnis. Ab da sollten alle CAN/MQTT Teilnehmer deine Daten lesen oder Empfangen können.

Wir arbeiten noch an einer cooleren Variante als manuelles anschreiben. Am Ende hätte ich gerne ein Webinterface o.ä. wo man einfach seinen Sensor/Aktor angibt und gut is. Wer sich berufen fühlt so etwas zu programmieren: feel free ;-) ich würd mich freuen.

Regeln

Alle Angaben sind lower case ohne führenden und endenden Slash. Zulässige Zeichen: a...z, 0...9, _

topic
     --> subtopic

bedeutet also soviel wie topic/subtopic und nicht /topic/subtopic/

1. Ebene: Gebäude

Bezeichnung des Gebäudes bzw. der Freifläche. Bis jetzt festgelegte Gebäude:

  • waschkaue
  • schachthalle_maschinenhaus
  • hauptluefter
  • reserveluefter_schalthaus
  • fahrradhalle
  • huette
  • bonker
  • pumpwerk
  • wassermesshaus

2. Ebene: Raumbezeichnung

Wird in einem Verzeichnis für jedes Gebäudes festgelegt. Entitäten, die sich keinem Raum zuordnen lassen, haben den Raum "all"

3. Ebene: Achse

Bezeichnung eines Ortes innerhalb des Raumes. Wird angewendet für Entitäten, die für eine Gebäudefunktion genau an diesem Ort notwendig sind (z.B. ein Heizkörper, eine Deckenlampe oder ein Fenster). Die Ortsangabe "Achse" ist feiner aufgelöst als die Raumbezeichnung, d.h. ein Raum kann aus mehreren Achsen bestehen. Entitäten, die nicht zwingend einem bestimmten Ort zugeordnet sind (z.B. ein Server, dieser funktioniert auch einige Meter weiter noch), haben die Achsbezeichnung "000".

Üblicherweise ist eine Gebäudeachse so breit wie ein Fenster. Das Gebäude wird sowohl in Nord-Südrichtung als auch in Ost-Westrichtung in Gebäudeachen aufgeteilt, die auf diese Weise ein Raster bilden, das jeden Punkt im Gebäude umfasst. In Ost-Westrichtung verlaufende Achsen werden mit einem Buchstaben bezeichnet, beginnend bei A im Osten. In Nord-Südrichtung verlaufende Achsen werden mit einer Zahl (2 Ziffern) bezeichnet, beginnend mit 01 im Süden. Die genaue Lage der Achsen wird für jedes Gebäude im Gebäudegrundriss festgelegt.

 Beispiel: der kleine Raum ganz hinten links im Verwaltungstrakt der Waschkaue besteht aus den Achsen A02 und A03 (A01 ist das
Lüftungsgitter draußen davor). Der Raum links daneben hätte dementsprechend A03 und A04. Die Fensterfront zur Dorstener Str.
steht im rechten Winkel dazu und hätte B01, C01, D01 usw.  

Achsschema für die Hütte:

BL7 Huette Achsen-2.png

4. Ebene: Entität

Bezeichnung des Gerätes / Gebäudesteils / Anlagenteils, der Quelle bzw. Senke der Daten ist, aber nicht der Name des Steuergerätes. Wird in einem Verzeichnis festgelegt.

Beispiele: Heizgeraet, Eingangstuer, Server. Nicht zulässig: RasPi, ESP, es sei denn es handelt sich um Werte, die ihren Ursprung in diesen Geräten haben. Beispielsweise RAM- Auslastung des RasPi oder Uptime des ESP.

Anmerkung: Wir haben zunächst beispielsweise intuitiv angenommen, dass der Pfad der Doorstatussis unter ESP/sensors/door abgelegt werden müsste. Das ist allerdings ziemlich suboptimal, da das Gerät, der ESP, gewechselt werden könnte, aber die Daten dennoch zuverlässig vom Verzeichnis abrufbar sein sollen.

5. Ebene: Typ des Datenpunktes.

Zulässige Einträge:

  • sensors : Messwerte direkt von einem Sensor
  • actuators : Steuerbefehle, die direkt an einen Aktor gehen
  • target_values : Sollwerte, Betriebsartenumschaltung, Zeitprogramme usw. an die Steuerung
  • derived_values : verarbeitete Messdaten, interne Zustände, usw., die in der Steuerung ihren Ursprung haben

6. Ebene: Name des Datenpunktes

Hier wird der Datenpunkt benannt. Der Name soll möglichst sprechend und eindeutig sein. Bei binären Variablen soll aus dem Namen der Zustand für den Variablenwert "true" hervor gehen.

Beispiel für einen gültigen Datenpunkt

huette
     --> wc_center
          --> klo00
               --> A05
                    --> sensors
                         --> spuelkasten_fuellung

entspricht: huette/wc_center/A05/klo00/sensors/spuelkasten_fuellung


Aktuelles Verzeichnis

Das Verzeichnis liegt nicht mehr im Wiki sondern auf GitHub. Wer den Treeview haben möchte: ich habe ein grauenvolles script geschrieben das auch in dem Repo liegt. Wenn sich jemand berufen fühlt da etwas richtiges zu schreiben. Nur zu ;-)

Siehe auch Can2mqtt MQTT