RasPi Zero Hub – Architektur & Datenfluss

Veröffenticht am 21.02.2026    von     in der Kategorie Projekt: RasPi Zero Hub, Raspberry Pi     bisher keine Reaktionen


In den bisherigen Beiträgen habe ich Projektidee, Hardware, Aufbau und die Installation der benötigten Bibliotheken beschrieben.

Dieser Artikel setzt dort an, wo die eigentliche Struktur des Systems sichtbar wird: in der inneren Organisation der Software.

Ziel ist es nicht, den vollständigen Code zu erläutern oder einzelne Zeilen zu erklären.

Vielmehr geht es darum, nachvollziehbar zu machen:

  • wie die einzelnen Komponenten zusammenspielen

  • wie Sensordaten ihren Weg durch das System nehmen

  • warum bestimmte Architekturentscheidungen getroffen wurden

Der vollständige Code ist separat verfügbar. Die hier gezeigten Ausschnitte dienen ausschließlich der strukturellen Verankerung.

 

1. Überblick: Komponenten des Systems

Der RasPi Zero Hub besteht softwareseitig aus vier klar getrennten Ebenen:

  1. Sensor-Ebene (Hardware & Treiber)

  2. Python-Steuerung (Logik & Koordination)

  3. Visualisierung & Interaktion (Display, Touch, WebSocket)

  4. Persistenz & externe Anbindungen (SQLite, API, OpenWeather)

Diese Trennung ist bewusst gewählt.

Sie erlaubt es, einzelne Bereiche unabhängig zu erweitern oder auszutauschen, ohne die Gesamtarchitektur zu verändern.

 

2. Sensor-Ebene: Rohdaten als Grundlage

Im Standardaufbau kommen drei Sensortypen zum Einsatz:

  • BME280

    Temperatur, Luftfeuchtigkeit, Luftdruck (Innen)

  • DHT22

    Temperatur und Luftfeuchtigkeit (Innen, zweite Quelle)

  • AM2301 / AM3201

    Temperatur und Luftfeuchtigkeit (Außen)

Jeder Sensor liefert Rohwerte.

In dieser Phase findet noch keine Bewertung statt – es geht ausschließlich um Messung.

Die Sensoren werden bewusst getrennt behandelt, um:

  • Plausibilitätsprüfungen zu ermöglichen

  • Mittelwerte bilden zu können

  • Erweiterungen offen zu halten

 

3. Python als Zentrale: Lesen, Verarbeiten, Verteilen

Die zentrale Python-Anwendung übernimmt drei Hauptaufgaben:

  1. Zyklisches Einlesen der Sensoren

  2. Aufbereitung und Aggregation der Werte

  3. Weitergabe an Anzeige, Logik und Speicher

Der Ablauf ist strukturell immer gleich:

Sensoren lesen

→ Werte prüfen

→ Mittelwerte berechnen

→ Logik anwenden

→ Daten verteilen

Wichtig ist:

Es gibt nur eine Quelle der Wahrheit – die Python-Logik.

Display, Webinterface und API greifen niemals direkt auf Sensoren zu.

 

Übernahme der Messwerte

Die Sensoren werden zunächst lokal eingelesen. Erst danach werden die Werte gesammelt in den globalen Systemzustand übernommen.

Die Werte werden zunächst in lokalen Variablen erfasst.

Erst anschließend erfolgt eine atomare Übernahme in den globalen Zustand – abgesichert durch state_lock.

Damit wird verhindert, dass Display, WebSocket oder LED-Logik mit inkonsistenten Zwischenwerten arbeiten.

 

Logik anwenden: Mittelwert & Schwellenwert

Die eigentliche Bewertung erfolgt ausschließlich in der Python-Zentrale.

Ein Beispiel ist die Prüfung der Luftfeuchtigkeit.

Die Entscheidung basiert auf:

  • einem Mittelwert zweier Innen-Sensoren

  • einem konfigurierbaren Schwellenwert

  • einer Fail-safe-Strategie bei fehlenden Messwerten

Diese Logik existiert ausschließlich im Backend.

Das Frontend übernimmt keine Berechnungen.

 

4. Messwert-Mapping: Klar definierte Bedeutungen

Zur Konsistenz über alle Ebenen hinweg ist das Messwert-Mapping eindeutig definiert:

Feld

Bedeutung

sensorwert_a

BME280 Temperatur innen

sensorwert_b

BME280 Luftfeuchtigkeit innen

sensorwert_c

BME280 Luftdruck

sensorwert_d

DHT22 Temperatur innen

sensorwert_e

DHT22 Luftfeuchtigkeit innen

sensorwert_f

AM2301 Temperatur außen

sensorwert_g

AM2301 Luftfeuchtigkeit außen

Abgeleitete Werte werden nicht persistent gespeichert, sondern bei Bedarf berechnet.

Beispiel:

  • Temperatur innen (Ø) = (a + d) / 2

  • Luftfeuchtigkeit innen (Ø) = (b + e) / 2

Das vermeidet Redundanz und hält die Datenbasis transparent.

 

5. Interaktion: Display, Touchsensor & WebSocket

Der RasPi Zero Hub ist kein passives Messgerät.

Display & Touchsensor

  • Das LCD zeigt verschiedene Informationsseiten

  • Der Touchsensor wechselt zyklisch zwischen Ansichten

  • Keine Menülogik, keine Hierarchien – bewusst einfach gehalten

 

WebSocket als Konfigurationskanal

Über das Webinterface können Laufzeitparameter verändert werden:

  • Schwellenwerte

  • Anzeigezeiten

  • API-Aktivierung

  • Speicherintervalle

Änderungen wirken sofort – ohne Neustart.

Die WebSocket-Nachricht ändert zunächst die Runtime-Variablen.

Anschließend wird die Konfiguration persistent gespeichert.

Damit gilt:

  • Änderungen wirken sofort

  • bleiben nach Neustart erhalten

  • werden ausschließlich zentral verwaltet

Der WebSocket dient dabei nur der lokalen Steuerung, nicht der Fernbedienung.

 

6. Speicherung: Lokal zuerst, extern optional

Lokale Speicherung (SQLite)

Jeder Messzyklus wird lokal gespeichert – unabhängig von Netzwerk oder API.

Die lokale Datenbank ist die stabile Basis des Systems.

Externe Dienste sind optional – niemals Voraussetzung für den Betrieb.

 

Externe Speicherung (API)

Optional können Daten zusätzlich an eine externe API übertragen werden.

Zweck:

  • Langzeitarchivierung

  • Zentrale Auswertung

  • Dashboard-Anbindung

Wichtig:

  • API-Key-basiert

  • Rate-limitiert

  • Zeitstempel-validiert

Die externe Speicherung ergänzt die lokale Datenbank – sie ersetzt sie nicht.

 

7. Externe Daten: OpenWeather als Vergleichswert

Zusätzlich können Wetterdaten von OpenWeather eingebunden werden.

Diese Daten:

  • werden nicht mit eigenen Sensoren vermischt

  • dienen als Referenzwerte

  • fließen nur in Anzeige und Vergleich ein

Die Kernlogik basiert ausschließlich auf eigenen Messungen.

 

8. Fazit: Ein bewusst modularer Ansatz

Die Architektur des RasPi Zero Hub folgt drei Grundprinzipien:

  1. Trennung von Messung, Logik und Darstellung

  2. Lokale Funktionalität ohne externe Abhängigkeiten

  3. Optionale Erweiterbarkeit statt Zwang

Die Python-Zentrale bildet den stabilen Kern.

Alle anderen Ebenen – Display, Webinterface, externe API – greifen auf diesen Kern zu, ohne ihn zu umgehen.

In den nächsten Beiträgen gehe ich gezielt auf einzelne Teilbereiche ein – beginnend mit der Sensorik und der Messwert-Aufbereitung.

 

 

Wenn du diese Artikelserie bisher nicht kennst, hier sind die bisher erschienenen Einträge des Projekttagebuchs.

Der vollständige Projektcode des RasPi Zero Hub steht als Download zur Verfügung.
Alle Python-Dateien, Konfigurationen sowie die Weboberfläche sind dort gebündelt abrufbar:

👉 Zum Download des vollständigen Projektcodes


Transparenz-Hinweis:

Die auf dieser Seite verwendeten Produktlinks sind sogenannte Affiliate-Links zu einem Partnerprogramm. Für dich entstehen dadurch keine Mehrkosten, ich erhalte durch deinen Kauf über den Link eine kleine Provision.


Wolfgang Raab – Betreiber von webnist.de

Mein Name ist Wolfgang, ich beschäftige mich nun schon seit 1985 mit der EDV und im Besonderen mit der Software- und Webentwicklung.

Auf diesem Blog schreibe ich über Dinge, die mich begeistern, beschäftigen und ich der Meinung bin, es könnte für andere interessant und hilfreich sein.

Als großer Fan des Raspberry Pi finde ich es spannend, wie man den kleinen Computer in Verbindung mit dem IoT und Smart Home nutzen kann. Deshalb behandeln viele Beiträge auch genau dieses Thema.

Ich bin ein leidenschaftlicher Leser und Fotograf. Wenn ich nicht gerade in einem spannenden Roman versinke, bin ich oft unterwegs, um die Schönheit der Welt mit meiner Kamera einzufangen und zu teilen.

Weitere Infos und Fotos findest du auf einem der folgenden Plattformen.






Mehr erfahren?

Besuche die "About"-Seite meines Blogs und finde heraus, wie du mit mir in den Bereichen Web- und Mobile-Programmierung und Raspberry Pi zusammenarbeiten kannst. Hier beginnt deine digitale Reise.


Unterstützen

Dieser Beitrag hat dir gefallen und konnte dir bei deinem Projekt oder Problem behilflich sein? Dann würde ich mich sehr freuen, wenn du dich mit einer noch so kleinen Spende erkenntlich zeigen möchtest.


Schreibe einen Kommentar

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

 

Kleiner Hinweis, alle Kommentare werden moderiert.

Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.

Entdecke die Welt von Webnist.de

Erfahre mehr über die Hintergründe meines Blogs und wie ich dich bei deinen digitalen Projekten unterstützen kann.

Aktuelles Video auf YouTube

In diesem Video stelle ich mein Projekt „RasPi Zero Hub“ im aktuellen Entwickleraufbau vor.