Artikel 5 – Wettervorhersage integrieren. Wie die Forecast‑App nahtlos Teil der Gebäudedaten‑App wird

Die Wettervorhersage‑App, die du in einem separaten Projekt entwickelt hast, ist ein vollwertiges Modul mit eigener Logik, eigener Datenverarbeitung und eigenem UI. In diesem Artikel lernst du, wie du diese App vollständig in die Gebäudedaten‑App integrierst, ohne ihren Code zu verändern oder anzupassen. Die Integration erfolgt modular, sauber und so, dass beide Systeme weiterhin unabhängig voneinander funktionieren könnten — aber in der gemeinsamen App perfekt zusammenspielen.

Dieser Artikel ist ein wichtiger Meilenstein der Serie, denn ab hier wird aus der Gebäudedaten‑App ein echtes Dashboard, das sowohl interne Sensordaten als auch externe Wetterdaten darstellen kann. Du wirst sehen, wie einfach die Integration dank der klaren Struktur beider Projekte ist, und wie du die Navigation so erweiterst, dass der Benutzer intuitiv zwischen Gebäudedaten und Wettervorhersage wechseln kann.

1. Warum die Wettervorhersage ein natürlicher Bestandteil der Gebäudedaten‑App ist

Bevor wir in die technische Integration einsteigen, lohnt es sich, kurz darüber nachzudenken, warum die Wettervorhersage überhaupt in die Gebäudedaten‑App gehört. Die Antwort ist einfach: Außensensoren und Wetterdaten gehören zusammen. Wenn du die Temperatur im Wohnzimmer misst, ist es sinnvoll zu wissen, wie warm es draußen ist. Wenn du die Luftfeuchtigkeit im Keller misst, ist es hilfreich zu wissen, ob draußen Regen angekündigt ist.

Die Wettervorhersage ergänzt die Gebäudedaten‑App also nicht nur — sie erweitert sie logisch. Die App wird dadurch zu einem echten Monitoring‑Tool, das sowohl interne als auch externe Faktoren berücksichtigt.

2. Die Struktur der Wettervorhersage‑App

Die Wettervorhersage‑App ist modular aufgebaut und besteht aus mehreren klar getrennten Komponenten:

  • ForecastScreen – der Hauptscreen der App
  • WeatherReader – lädt die Wetterdaten
  • WeatherApiClient – kommuniziert mit der API
  • WeatherParser – bereitet die API‑Antwort auf
  • download_icon – lädt die Wettericons herunter
  • visualizer.kv – definiert das Layout

Diese Struktur ist ideal für die Integration, weil du keine einzige Datei verändern musst. Du kannst die Wetter‑App einfach in die Gebäudedaten‑App einfügen und als weiteren Screen registrieren.


3. Die Integration in app.py – ein einziger Eintrag genügt

Die Integration erfolgt in der Datei app.py. Dort wird der ScreenManager erstellt und alle Screens registriert. Die Wettervorhersage wird einfach als weiterer Screen hinzugefügt:

weather_settings = Settings()<br>sm.add_widget(ForecastScreen(settings=weather_settings, name="weather"))<br>

Das ist alles. Mehr ist nicht nötig.

Warum funktioniert das so einfach?

Weil die Wetter‑App:

  • ihren eigenen Screen mitbringt
  • ihre eigenen Services mitbringt
  • ihre eigenen KV‑Layouts mitbringt
  • keine Abhängigkeiten zu anderen Teilen der Gebäudedaten‑App hat

Sie ist ein vollständig gekapseltes Modul.

4. Der ForecastScreen – das Herz der Wettervorhersage

Der ForecastScreen ist der zentrale Screen der Wetter‑App. Er lädt:

  • die aktuelle Wetterlage
  • die 5‑Tage‑Vorhersage
  • die Icons für jede Tageskachel
  • Diagramme für Temperatur, Wind, Regen und Bewölkung

Der ForecastScreen verwendet mehrere Services, um diese Daten zu laden und darzustellen.

WeatherApiClient

Der WeatherApiClient ist für die Kommunikation mit der API zuständig. Er sendet HTTP‑Anfragen und gibt die Antworten zurück.

WeatherReader

Der WeatherReader ruft den ApiClient auf und bereitet die Daten für den Parser vor.

WeatherParser

Der Parser extrahiert die relevanten Informationen aus der API‑Antwort:

  • Temperatur
  • Feuchtigkeit
  • Wind
  • Regen
  • Bewölkung
  • Zeitstempel

def download_icon(icon_code: str) -> Path:

Diese Funktion lädt die Icons für die Wetterlage herunter und speichert sie lokal.

5. Die KV‑Datei visualizer.kv – das Layout der Wettervorhersage

Die Datei visualizer.kv definiert das Layout des ForecastScreens. Sie enthält:

  • eine Kopfzeile
  • eine ScrollView für die Tageskacheln
  • Diagrammflächen
  • Labels für Temperatur, Wind, Regen und Bewölkung

Das Layout ist modern, übersichtlich und passt gut zur Gebäudedaten‑App.

6. Die Navigation zum ForecastScreen – ein eigener Button im Startscreen

Der Startscreen der Gebäudedaten‑App enthält drei Buttons:

  • Räume
  • Außensensoren
  • Wettervorhersage

Der Button für die Wettervorhersage öffnet den ForecastScreen:

def open_forecast(self):
    self.manager.current = "weather"

Das ist bewusst einfach gehalten. Der ForecastScreen kümmert sich selbst darum, die Wetterdaten zu laden.

7. Wie die Wettervorhersage geladen wird

Der ForecastScreen lädt die Wetterdaten, sobald er betreten wird. Das geschieht in der Methode on_pre_enter. Dort wird der WeatherReader aufgerufen, der die Daten lädt und an den Parser weitergibt.

Die Icons werden ebenfalls automatisch heruntergeladen, wenn sie noch nicht vorhanden sind.

Warum on_pre_enter?

Weil die Wetterdaten dynamisch sind. Wenn du die App startest und später erneut die Wettervorhersage öffnest, sollen die Daten aktualisiert werden.

8. Die Diagramme der Wettervorhersage

Die Wettervorhersage enthält mehrere Diagramme:

  • Temperaturverlauf
  • Windgeschwindigkeit
  • Regenmenge
  • Bewölkungsgrad

Diese Diagramme werden mit Matplotlib erzeugt — genau wie die Diagramme der Gebäudedaten‑App. Dadurch entsteht ein einheitliches Erscheinungsbild.

Die Diagramme werden transparent gespeichert, damit sie sich gut in das UI einfügen.

9. Warum die Integration so sauber funktioniert

Die Integration funktioniert so gut, weil beide Apps:

  • modular aufgebaut sind
  • klare Verantwortlichkeiten haben
  • ihre eigenen Layouts mitbringen
  • ihre eigenen Services mitbringen
  • keine gegenseitigen Abhängigkeiten haben

Der ForecastScreen ist ein vollständig gekapselter Screen. Er benötigt nur:

  • eine API‑Key‑Einstellung
  • einen Namen im ScreenManager

Mehr nicht.

10. Die Wettervorhersage als Teil der Navigation

Durch die Integration wird die Wettervorhersage ein natürlicher Teil der App. Der Benutzer kann:

  • Räume anzeigen
  • Sensoren anzeigen
  • Diagramme anzeigen
  • Außensensoren anzeigen
  • Wettervorhersage anzeigen

Alles über den Startscreen.

11. Die Rolle des AppState in der Wettervorhersage

Der ForecastScreen verwendet den AppState nicht. Das ist wichtig, denn:

  • die Wettervorhersage ist unabhängig von den Gebäudedaten
  • sie benötigt keine Informationen über Räume oder Sensoren
  • sie hat ihre eigene Logik

Das macht die Integration besonders einfach.

12. Fazit: Die Wettervorhersage ist vollständig integriert

Nach diesem Artikel verstehst du:

  • wie die Wettervorhersage‑App aufgebaut ist
  • wie sie in die Gebäudedaten‑App integriert wird
  • wie der ForecastScreen funktioniert
  • wie die Navigation erweitert wird
  • wie die Diagramme erzeugt werden
  • warum die Integration so sauber funktioniert

Damit ist die App bereit für die nächsten Schritte. In Artikel 6 wirst du die Datenbank, die Sensorwerte und die Diagrammerstellung im Detail analysieren.

Veröffentlicht in Uncategorized.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten durch die Website einverstanden.