A2.9b: Klasse für den Cloudservice erstellen-Expertenniveau (45min)
Abschlussbedingungen
Isttemperatur, Solltemperatur, Hysterese und weitere Parameter aus dem Cloudspeicher auslesen oder speichern
Der MQTT Hostname
(URL), der Basistopic (hier: "serverraum/1") und ein Temperatursensorobjekt werden beim Konstruktoraufruf als Parameter übergeben.
Aufgaben
Hilfen
Anzeigen
Abgabe einreichen
Isttemperatur, Solltemperatur, Hysterese und weitere Parameter aus dem Cloudspeicher auslesen oder speichern
Am Beispiel des MQTT-Brokers sollen die beiden Führungsgrößen aus einem Topic ausgelesen werden. Sinnvollerweise schreibt man dann auch gleich Routinen zum Auslesen der GPIO Nummer und der Raumtemperatur. Die Topics im MQTT-Broker dazu sind zum Beispiel
für den Serverraum 1:
serverraum/1/roomtemp
serverraum/1/setpointtemp
serverraum/1/hyst
serverraum/1/gpiofan
Die Klasse, die unseren Cloudservice modelliert, nennen wir "Cloud". In UML-Notifikation kann sie so aussehen:
Der MQTT Hostname
(URL), der Basistopic (hier: "serverraum/1") und ein Temperatursensorobjekt werden beim Konstruktoraufruf als Parameter übergeben.Hier ein Beispiel, wie je eine setter- und eine getter-Methode aussehen könnte:
``` def get_roomTemp(self): # Serverraumtemperatur aus der Cloud lesen
self.__roomTemp = float((subscribe.simple(self.__topicRoomTemp, hostname=self.__hostname, retained=True)).payload)
return self.__roomTemp
def set_roomTemp(self, temp): # Serverraumtemperatur in Cloud schreiben (macht eigentlich nur Sinn, wenn auf diesem Raspi die Temperaturmessung stattfindet)
publish.single(self.__topicRoomTemp, temp, hostname=self.__hostname, retain=True)
return
```
Die Methode update() soll
- Auslesen der aktuellen Temperatur aus dem Sensor
- Temperatur im Objektattribut speichern
- Temperatur im Cloudspeicher aktualisieren
- Erstellen Sie die Klasse in Python.
- Weisen Sie den privaten Attributen beim Konstruktoraufruf Anfangswerte zu.
- Denken Sie an die oben erwähnte Parameterübergabe an den Konstruktor.
- Implementieren Sie die Methoden.
- Geben Sie die Datei mit den Quellcodes hier ab.