Bevor die Software geschrieben werden kann, müssen erst einmal einige Dinge definiert werden.
Das Netzwerk
Alle beteiligten Dienste befinden sich in einem eigens dafür geschaffenem Netz. Die Verbindung nach außen geschieht über einen Router mitsamt Firewall.
Publisher und Subscriber
Der Sensor trägt seine Messwerte als Publisher auf dem Server ein. Alle Aktuatoren oder Messgeräte lassen sich die Messwerte als Subscriber zusenden. Es gibt keinen Retain und auch keine zeitlich regelmässige Übertragung (Timetriggered). Wer sich anmeldet, muss warten, bis es einen neuen Messwert gibt.
Topics
Der Sensor stellt zwei Messwerte zur Verfügung: Luftfeuchte und Temperatur
Um die Messwerte mit anderen Werten in eine Beziehung setzen zu können ist noch ein weiterer Wert vonnöten: Die Messzeit.
Es gibt also folgende Topics:
Wohnung/Raum1/Luftfeuchte/Messwert
Wohnung/Raum1/Luftfeuchte/Messzeit
Wohnung/Raum1/Temperatur/Messwert
Wohnung/Raum1/Temperatur/Messzeit
Wobei für die Messwerte folgende Maßeinheiten benutzt werden:
Die Luftfeuchte in relativer Luftfeuchte in [%]
Die Temperatur in Grad Celsius [‚C]
Die Darstellung der Messzeit erfolgt folgendermaßen:
TT.MM.JJJJ ST:MN
mit TT Tag, MM Monat, JJJJ Jahr in vollständiger Schreibweise
und ST Stunde, MN Minute
Beide Angaben erfolgen in ASCII Darstellung, also als Textstring.
QoS
Um sicherzugehen, das mindestens einmal ein Messwert ankommt, wird der QoS Level 1 genutzt. Der Nachrichtenzähler wird fortlaufend um eins erhöht.
Nutzung der Messwerte
Hier zeigen sich viele Möglichkeiten auf. Zum einen als Monitoring der Ist Situation (Messgerät) oder als Steuerung, z.B. Lüftung und / oder Heizungssteuerung (Facility und Gebäudemanagement)
Links und Literaturhinweise
MQTT
https://de.wikipedia.org/wiki/MQTT
Rechnernetze
https://de.wikipedia.org/wiki/Topologie_(Rechnernetz)
Mosquitto
https://mosquitto.org
Dokumentation zu Mosquitto
https://mosquitto.org/documentation/
Gebäudemanagement
https://de.wikipedia.org/wiki/Gebäudemanagement
Facilitymanagement
https://de.wikipedia.org/wiki/Facilitymanagement