Zum Hauptinhalt
Wenn Sie weiter auf dieser Webseite arbeiten möchten, bestätigen Sie bitte unsere Nutzungsrichtlinie:
  • Regelung zur Nutzung von Moodle
  • Erklärung zur Barrierefreiheit
  • Datenschutzerklärung
Fortsetzen
x
openelec
  • Startseite
  • Kalender
  • Kurskatalog
    Berufliche Bildung Medienbildung Politische Bildung Rechtsfragen Fächerübergreifende Themen
  • Über uns
    Über das ELEC (Bildungsportal) E-Learning-Center Niedersachsen (ELEC) Regionale Fortbildung (KomzenELEC) Niedersächsisches LernCenter (NLC)
  • Mehr
Systemweite Suche Schließen
Sucheingabe umschalten
Sie sind als Gast angemeldet
Anmelden
openelec
Startseite Kalender Kurskatalog Einklappen Ausklappen
Berufliche Bildung Medienbildung Politische Bildung Rechtsfragen Fächerübergreifende Themen
Über uns Einklappen Ausklappen
Über das ELEC (Bildungsportal) E-Learning-Center Niedersachsen (ELEC) Regionale Fortbildung (KomzenELEC) Niedersächsisches LernCenter (NLC)
Alles aufklappen Alles einklappen
  1. LF07 - FI-ITSE - Raspi - 22/23
  2. LS7.2: Raumklima temperaturgeführt regeln
  3. A2.9b: Klasse für den Cloudservice erstellen-Expertenniveau (45min)

A2.9b: Klasse für den Cloudservice erstellen-Expertenniveau (45min)

Abschlussbedingungen
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:
UML Darstellung der Klasse CloudDer 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

Aufgaben
  1. Erstellen Sie die Klasse in Python.
  2. Weisen Sie den privaten Attributen beim Konstruktoraufruf Anfangswerte zu.
  3. Denken Sie an die oben erwähnte Parameterübergabe an den Konstruktor.
  4. Implementieren Sie die Methoden.
  5. Geben Sie die Datei mit den Quellcodes hier ab.

Hilfen

Retained Messages in MQTT

Publish Single in MQTT

Subscribe Simple in MQTT


◄ A2.9a: Klasse für den Cloudservice ergänzen-Basisniveau (45min)
A2.10: Struktogramm des Hauptprogramms erklären (45min) ►
Impressum Support