Privater Webserver von Manfred Höfer mit Apache2 auf Banana Pi M2 Berry
Projekte mit Raspberry Pi 3B und Zero (2)W
Datum und Zeit: Donnerstag, 03. Juli 2025, 16:18:00


Hauptgedanke und Realisierung

Projekt Webserver

Nachdem ich Rentner wurde und auch mit dem anschließenden Minijob 2017 aufgehört hatte, war ich ohne Webhostingpaket und V-Server, die mir der Arbeitgeber zum Testen und Üben überlassen hatte. Hier gab es Internetseiten, die verschiedene Themen beinhalteten. Die Seiten mußten immer aktuell gehalten werden, so hatte ich dauerhaft Verbindung zum Webhosting und zur Serveradministration.
DSL und Webhosting sind 12 Jahre mein tägliches Brot bei einem renomierten Webhoster in Berlin gewesen. Das Aufgabengebiet umfasste ein große Breite. Am Anfang war kaufmännisches Wissen in der Vertragsbetreuung gefragt. Später kam dann die Beantwortung technischer Anfragen zu DSL-Anschlüssen mit Fritzbox- und Netzwerksupport hinzu. Webhosting in seiner Gesamtheit war beim technischen Support eine große Herausforderung. Als Kommunikationskanäle dienten vorwiegend Telefon und E-Mail.
Einige Zeit nach dem Ausscheiden hatte ich wenig Interesse an diesen Dingen. Es ging mir gesundheitlich nicht besonders gut. Nach einer geraumen Weile kam jedoch der Wunsch auf, Webhosting bzw. Serververwaltung irgendwie hobbymäßig zu erhalten. Die einschlägigen Angebote der Webhoster waren mir aber zu teuer.
Beim Schmökern in Fachzeitschriften fand ich den "Raspberry Pi". Praktisch konnte ich mir nicht vorstellen, wie mit dem "kleinsten Computers der Welt" Webhosting zu realisieren ist. Ziel war es natürlich, dass der Miniserver im lokalen Netzwerk und auch aus dem Internet erreichbar wird. Die Internetpräsenz darauf sollte nur als Hobby betrieben werden. Gestaltung und Umfang waren da noch nicht im Vordergrund.
Mir fiel ein, dass mein Sohn solch einen "Raspberry Pi" mal als Medienserver zu Hause betrieben hat. Meine Nachfrage bei ihm ergab, das Teil wurde aktuell nicht genutzt und ich könnte mal damit probieren.
Darüber habe ich mich sehr gefreut, konnte ich doch erstmal ausprobieren, ob und wie sich der "Raspberry Pi" für mein Vorhaben eignete. Obwohl der Preis bei ca. 50 Euro (mit Netzteil und SD-Karte) lag, wollte ich das Geld nicht umsonst ausgeben.
Nach der Installation des Betriebssystems "Raspbian" und des Webservers "Apache2" mit "PHP" und "MySQL" zeigte sich, dass es genau das war, was ich gesucht hatte. Das kleine Ding war schnell genug und verbrauchte nur wenig Strom. Der Stromverbrauch war gering, so dass eine Betriebszeit von 24/7, beim heutigen Strompreis (2018), höchsten 7 Euro pro Jahr ausmachen würde. Meine 16Mbit DSL-Leitung ist mit einem Upstream von ca. 1.024 Kbit/s etwas lahm, reicht jedoch für meine Belange, also wenige Nutzer gleichzeitig, völlig aus.
Ich fand einen Shop im Internet, der sich mit dem Raspberry Pi beschäftigt. Dort habe ich mir dann im Januar 2018 die Version Raspberry Pi 3B bestellt. Der "Raspberry Pi" (Quad Core 1.2GHz Broadcom BCM2837 64bit CPU) wurde das Geburtstagsgeschenk meiner Frau zu meinem 70. und ist seit dem mein "Lieblingsspielzeug".
Bemerkung: Bei der Suche im Internet habe ich festgestellt, dass es unzählige Veröffentlichungen zur Verwendung dieser "kleinsten Computer der Welt" gibt. Es ist also kein Neuland aber die Vielfalt hat mich überzeugt, mein Hobby auf diese kleinen, leistungsfähigen Platinen auszurichten.

Die Hardware

Erstausstattung

Die Leiterplatte des Raspberry Pi ist 93 x 63 mm groß. Eine EC-Karte ist 85 x 55 mm groß!!!
Als Grundausstattung benötigt man also den Raspberry Pi, ein Netzteil, eine Mini-SD Karte und ein Gehäuse. Bei dem Netzteil habe ich mich für das offizielle Netzteil mit 5V bei 2,5A entschieden. Als Mini-SD-Karte habe ich eine 32 GB Karte von Scandisk (Ultra Klasse 10) verwendet.
Da ich noch eine Funktastatur mit Maus hatte, kam ich auf die Idee, den "Raspberry Pi" über ein HDMI-Kabel an den Fernseher anzuschließen und über die Funktastatur zu bedienen. So war die Installation und Einrichtung sehr einfach möglich.
In einigen Veröffentlichungen habe ich Ende 2018 Hinweise zur geringen Lebensdauer von Mini-SD-Karten bei 24/7 Dauerbetrieb gefunden. Die Alternative wäre eine Festplatte. Tatsächlich gab es Anleitungen, wie man eine Festplatte anschließen und auch von ihr starten könnte. Eine HDD 2,5 Zoll vom Laptop, mit 160GB war ja noch in einer Schublade. Den Adapter von SATA auf USB gab es beim Elekronikmarkt zu kaufen. Nach ein paar Tagen (Anfang 2019) funktionierte die HDD am Raspberry Pi. Ein Test der Zugriffszeiten zeigte, dass die Festplatte schneller war als die SD-Karte. Damit blieb die Festplatte am Raspberry Pi, denn der Stromverbrauch war nur unwesentlich höher.
Verschiedene Autoren zum Thema Mini-Computer wiesen darauf hin, dass es eine leistungsfähigere Variante für einen Webserver mit dem Mini-Computer gibt. Dies wäre der "Banana Pi", der eine eigene SATA Schnittstelle für die Festplatte hat. Damit wäre der Adapter von SATA auf USB nicht mehr notwendig. Es ist der "Banana Pi M2 Berry" (32 Bit Quad Core ARM Cortex A7 1.2 GHz CPU, 1GB DDR3 SDRAM), der mit den "Raspberry Pi 3B" ziemlich baugleich ist. So wurde ich nun Besitzer eines "Banana Pi M2 Berry" und einer SSD von Intenso mit 120GB. Beides ist seit Anfang 2020 als Webserver im Einsatz.
Banana Pi M2 Berry mit SSD 120GB
Die Untersuchung zur Geschwindigkeit der Festplatten habe ich mit dem Linux-Befehl "hdparm" gemacht. Dabei kam folgendes raus:
"Raspberry Pi 3B" mit HDD und SSD über USB-Adapter -> Lese- und Schreibgeschwindigkeit etwa 30 MB/sec.
"Banana Pi M2 Berry" mit SSD über SATA Anschluß -> Lese- und Schreibgeschwindigkeit etwa 200 MB/sec.
Einen solch deutlichen Unterschied hatte ich nicht erwartet.
Update 09/22 - Umbauarbeiten zur Anordnung von Banana-Pi und SSD, ich wollte die SSD unter dem Banana-Pi befestigen und gleichzeitig die Verkabelung optimieren. Da habe ich nicht richtig aufgepasst und stellte während der Arbeit fest, dass sich der Stecker an der SSD etwas gelöst hat und die SD-Karte im Schacht nicht mehr korrekt saß. Ein Neustart bestätigte, das System lief nicht mehr. Auf dem Monitor kam nichts mehr an und die grüne LED vom Banana-Pi leuchtete durchgehend. Die Suche begann, wo liegt der Fehler und wie kann man ihn beseitigen. Eine Recherche im Internet brachte mich nicht weiter.
Erstmal wurde ein Test mit einer SD-Karte, auf der das originale Banana-Pi Image ist, durchgeführt. Mein Banana-Pi M2 Berry startet sofort ohne Probleme und die SSD ließ sich auch öffnen und die Dateistruktur war auch sichtbar.
Die defekte SD-Karte haben ich in meinem Laptop untersucht. Die Datei uEnv.txt zeigte Beschädigungen. Dies ist eine reine Textdatei mit Konfigurationseinstellungen. An Stellen, wo Buchstaben stehen müssten, standen Zahlen bzw. Sonderzeichen. Aus dem Originalimage habe ich diese Datei in meine veränderte Imageversion kopiert und die Anpassung für das Rootlaufwerk vorgenommen. Und siehe da, der Banana-Pi startete wieder, die grüne LED blinkte vor sich hin bis sie, wie programmiert, ausgeschaltet wurde. Nur der Zugang zum Internet funktionierte nicht. Die Netzwerkfunktion war vollständig gestört. Es wurde keine Hardware für die Netzwerkverbindung erkannt. Da ich wusste, dass die Hardwareerkenung vom Kernel des Linuxsystems vorgenommen wird, brauchte ich nun noch die Kerneldateien. Die liegen im boot-Laufwerk, Verzeichnis /bananapi/bpi-m2u/linux/ und sind uImage und uInitrd. Nachdem ich beide Dateien ersetzt hatte, war der Banana-Pi wieder vollständig intakt. Nun konnte ich ihn wieder ans Netz anschließen und beim Provider die Infoseite deaktivieren. Dann mußte nur noch eine neue IP beim Internetprovider geholt werden und der ddclient hat die IP-Adresse für DynDNS aktualisiert.

Softwareausstattung

Anfangs, im Februar 2018, stand vordergründig das Kennenlernen des Raspberry Pi auf der Agenda. Ein Experimentierbrett (Breadboard) mit einigen Zubehörteilen waren schnell bestellt und geliefert. Die Installation des Betriebssystems "Raspian" auf der Mini-SD-Karte war unproblematisch. Damit man einige Experimente durchführen kann, muß noch etwas Zusatzsoftware installiert werden. Die Begriffe "Raspberry Pi" und "Experimente" in einer Suchmaschine bringen eine große Auswahl von Anleitungen hervor. Nach solchen Beschreibungen und Softwarebeispielen habe ich dann installiert und experimentiert.
Ich konnte einen kleinen Servo steuern, Sensoren für Temperatur, Feuchtigkeit und Bewegung ausprobieren. Eine kleine Minikamera ließ sich auch sehr einfach anschließen.
Mit der Minikamera war sehr schnell eine Webcam erstellt, mit der ich den Blumenkasten auf dem Balkon betrachten konnte. Die Verbindung funktionierte auch aus dem Internet mit entsprechenden Zugangsdaten. Die Software dafür heißt "Motion". Man kann sie sehr umfangreich programmieren. Zum Beispiel wenn in einem Bildteil eine Bewegung (Insekt) stattgefunden hatte, habe ich mir eine E-Mail zusenden lassen.
Dann habe ich auch noch die Software "MiniDLNA" installiert. Mit der hat mein Raspberry Pi Bilder und Videos im lokalen Netzwerk bereitgestellt. Diese kann man vom Fernseher oder dem Smartphone aus betrachten. Leider war die Bild- und Videoanzeige relativ langsam, so dass ich es wieder außer Betrieb genommen habe.
Anfang März 2018 habe ich dann das eigentliche Projekt Webserver mit "Apache 2" begonnen. Die Installation dieses Softwarepaketes ist zwar recht einfach, doch die Konfiguration ziemlich umfangreich. Meine Erfahrungen dazu reichten aus und die Konfiguration ging mir leicht von der Hand.
Zu den Programmen gehörte "PHP 7.0", "MySQL 5.1" und "phpMyAdmin". Dies sind die Hauptbestandteile des Webservers, allerdings nicht mit den aktuellsten Bestandteilen. Später habe ich die Versionen dann immer wieder aktualisiert. Zur Installation gab es auch im Internet viele Anleitungen. Installationen und Nacharbeiten erfolgten dann doch über eine SSH-Verbindung vom Laptop aus, damit der Fernseher nicht ständig belegt war.
Nun kam noch die Verbindung zum Internet an die Reihe, damit der "Apache 2" auch weltweit erreichbar ist.
Da sich die IP-Adresse meines DSL-Anschlusses öfter ändern kann, doch der Zugang aus dem Internet gewährleiste bleibt, gibt es den sogenannten dynamischen DNS-Dienst (DynDNS).
2018-2020 - Der DynDNS-Dienst in meiner "Vodafone-Easy-Box" wird von NOIP.COM unterstützt. Deshalb habe ich mir bei NOIP.COM ein kostenloses Konto eingerichtet, die Domain festgelegt und den Router "Easy-Box 803" entsprechend konfiguriert. Die Domain "mh48.ddns.net" muß ich alle 30 Tage bei NOIP.COM bestätigen. Für eine ständige Registrierung müsste ich 25$ pro Jahr bezahlen. So kann man beim Aufruf von "mh48.ddns.net" immer meinen Apache-Webserver auf dem Raspberry Pi erreichen, gleichgültig welche IP-Adresse ich von Vodafone bekam.
Seit 2021 - bin ich auf einen anderen DynDNS-Dienst umgestiegen. Die STRATO AG hat ein sogenanntes Domain-Paket mit DynDNS für 8 Cent/Monat im ersten Jahr. Da habe ich mir die Domain "mh48.de" registrieren lassen. Nach Einschalten der Option DynDNS habe ich auf meinem Banana Pi M2 Berry den "ddclient" installiert, der alle 5 Minuten nachsieht, ob sich meine IP-Adresse geändert hat. Ist das der Fall, schickt er diese Adresse an den DynDNS-Server von STRATO und die Domain "mh48.de" zeigt wieder auf meinen Apache2 vom Banana Pi M2 Berry.
Zur Verwendung von "https" habe ich mit "Lets-Encrypt" eine Verschlüsselung eingerichtet und noch den Port 443 in der Easy-Box weitergeleitet. Das Zertifikat ist kostenlos und bei den entsprechenden Zertifizierungsstellen eingetragen. Es muß nur alle 3 Monate erneuert werden, damit es kostenlos bleibt. Lets-Encrypt läßt sich auch so konfigurieren, dass nur noch "https" ausgeliefert wird auch wenn man z.B. http://mh48.de aufruft.
Als ich auf den "Banana Pi M2 Berry" umgestiegen war, mußte ich die Software für den Webserver neu installieren. Grund dafür war das unterschiedliche Betriebssystem, so dass ich nicht einfach die alte Softwareausstattung übertragen konnte. Die Installation hat viel Zeit in Anspruch genommen, da ich ein altes Ubuntu-System nehmen mußte, damit ich beim "Banana Pi" auch Temperatur und Frequenz überwachen konnte. Die neueren Softwareversionen für den "Banana Pi" haben diese Möglichkeiten nicht mehr. Da habe ich lange experimentiert bis ich doch die alte Ubuntu-Mate Version installieren mußte.
Anschließend begann ich die Seiten noch so zu gestaltet, dass sie auch mit einem Tablet oder Smartphone lesbar sind und eine variable Breite aufweisen. Das nennt man responsives Design. Einige Menüpunkte sind auch noch hinzugekommen, so dass es schon ganz schön umfangreich geworden ist, was am Anfang garnicht geplant war.

Das Projekt Wetterdaten

Als ersten Projektinhalt habe ich mir das Wetter ausgesucht. Eine eigene Wetterstation ist aber zu teuer und im Plattenbau WBS70/5 nicht realisierbar. Einen Garten, wo man das umsetzen könnte, habe ich nicht. So blieben mir nur die öffentlichen Wetterinformationen verschiedener Anbieter. Hier fand ich eine Möglichkeit bei Yahoo, die ich anfangs nutzte. Das Holen der Wetterdaten von Yahoo mußte leider eingestellt werden, da seit Anfang Januar 2019 keine Daten mehr von Yahoo geliefert werden.
Jetzt werden die Wetterdaten ausschließlich von "openweathermap.org" geholt. Eine kostenlose Anmeldung ermöglicht, die Wetterdaten per Key-Authorisierung zu holen. Bei einer stündlichen Abfrage muß man auch keine Gebühren bezahlen.


Eigentlich sollte das Ganze dazu dienen, einen Zusammenhang zwischen Wetter und Vorhofflimmern (VHF) zu prüfen. In einschlägigen Veröffentlichungen finden sich keine Hinweise auf einen Zusammenhang. Das spontane Vorhofflimmern war der Hauptgrund, dass ich mit dem Minijob 2017 aufgehört hatte.
Die Realisierung der Speicherung und Anzeige der Wetterdaten erfolgt teils in der Programmiersprache PHP und teils in der Programmiersprache Python. Für PHP brachte ich ganz gute Kenntnisse mit. Python ist eine sehr umfangreiche Programmiersprache, die man aber auch in kleinen Abschnitten gut nutzen kann.

Wetterdaten aus dem Internet

Wetterdaten per API von openweathermap.org
Die Daten werden in einer bestimmten Abfragetechnik (API) geholt. Man muß über eine http-Anfrage mitteilen, für welche Stadt man die Daten haben möchte und wer die Anfrage stellt (Identifizierungsschlüssel). In diesem Schlüssel ist auch erkennbar, welche Berechtigung man zum Holen der Daten hat.
Das passiert alles automatisch mit dem Dienst CRON. Er holt mir zwischen 3:45 und 23:45, jede Stunde per Script die Wetterdaten und speichert sie in einer Datei "wetter-aktuellesDatum+Uhrzeit.xml" ab. Die Zeitspanne kommt daher, da im kostenlosen Account die aktuellen Daten erst 2-3 Stunden nach der Erhebung bereitgestellt werden. Parallel dazu werden die Wetterdaten auch in einer Datenbank (MariaDB) gespeichert (Menü - Wetter - Werte pro Stunde).

Täglich 23:50 lasse ich per Script (CRON) aus der MariaDB-Datenbank die Maximum- und Minimumtemperatur mit Ihrem Zeitpunkt, den Durchschnitt für Luftdruck und Luftfeuchte sowie die aktuelle Prozessor-Temperatur in einer anderen Tabelle speichern (Menü - Max-Min-Tabelle).
Dann habe ich noch eine Anfrage bei openweathermap.org für die Wettervorschau, als kostenlose Version über 5 Tage zu 3 Stunden Abschnitten (Menü Wetter - 5 Tage Vorschau). Die wird täglich 3:30 per CRON geholt und über eine E-Mail in Textform an verschiedene E-Mailadressen versandt.

Wettermenü

Der erste Menüeintrag bei "Wetter" zeigt täglich den maximalen und minimalen Temperaturwert an und zu welcher Zeit dieser Wert ermittelt wurde. Weiterhin wird für den Tag der Durchschnittswert von Luftdruck und -feuchtigkeit angezeigt. Die Spalte CPU-Pi zeigt den Temperaturwert des Prozessors.
Die Balkenanzeigen der Temperaturwerte werden bei positiven Werten in rot, bei negativen Werten in blau und bei O°C in rot,weiß,blau angezeigt. Die Tabelle "Balken Max" zeigt die maximalen Werte an und ist in ihrer Breite durch den bisher maximalsten Wert gekennzeichnet. Die Tabelle "Balken Min" zeigt die minimalen Werte an.
Die Tabelle "Werte pro Stunde" zeigt die Werte mit dem entsprechenden Zeitpunkt an, die von openweathermap.org geholt wurden. Dabei wird im Datum für jeden Tag eine andere Farbmarkierung benutzt, so dass man einen Tag gut überblicken kann.
Der Menüpunt "5-Tage Vorschau", zeigt die von openweathermap.org zur Verfügung gestellte Prognose an. Hier wird der Name des Wochentages immer farblich unterschieden, so dass der Betrachter einen Tag gut überblicken kann.
"Messstation Balkon" ist der Menüpunkt für die Anzeige der auf dem Balkon gemessenen Werte. Einzelheiten siehe im Menükasten bei "Messung auf dem Balkon".

Speichern und Sichern der Wetterdaten

Für die Sicherung der Wetterdaten und Datenbanken habe ich auf der SSD eine eigene Partition angelegt. Jedes Thema hat sein eigenes Verzeichnis.
Scripte, die zu festgelegten Zeiten ausgeführt werden (Cronjobs), sorgen für die Sicherung der Daten. Zum Beispiel werden alle von "openweathermap.org" geholten Daten in .xml Dateien gespeichert. Das betrifft die stündlich geholten Daten und die täglich geholten Vorhersagedaten. Die Datenbanken werden einmal täglich, mit Datum+Uhrzeit gesichert. Da die Sicherungspartition der SSD mit ca. 50GB sehr groß ist, wird es wohl über 5 Jahre dauern, bis ich mir über den Platz sorgen machen muß.

Allgemeine Aufgaben

  1. CRON hat weiterhin die Aufgabe ein Shellscript auszuführen, dass Statusmeldungen erzeugt. Um 5 Uhr sendet CRON mit einem Script die Statusmeldungen auf mein Smartphone.
  2. Für fast alle CRONJOBS wird mit "2>&1 >> Dienstname.log" ein Logfile geführt. So kann ich nachvollziehen, ob die CRONJOBS korrekt abgelaufen sind.
  3. Für die Datensicherung sind zwei Wege eingerichtet. Einmal werden die Datenbanken gesichert und dann werden die Verzeichnisse /home/ sowie /var/www/ per zip gesichert. Die Sicherungen landen auf der SSD von Intenso.

FB+SK+ENIBAS

Dieses Projekt zeigt drei verschiedene Internetthemen. ENIBAS ist die Liste der Bilder, die auf der früheren Seite "enibas-pictures.de" ausgestellt waren. Diese Internetpräsenz war in meinem Mitarbeiterpaket "Webhosting und V-Server" für ca. 10 Jahre integriert. Damit die Bilder auch weiterhin im Internet sichtbar sind, habe ich sie hier mit aufgenommen.
Das Fahrtenbuch war eigentlich eine Testaufgabe für die Servernutzung meines V-Servers und wurde 2010 begonnen. Da sich diese Darstellung gut nutzen ließ, habe ich die Papierform des Fahrtenbuches abgeschaft. Nun sind es schon 10 Jahre, dass ich mein Fahrgeschehen so registriere. Einige Teile des Fahrtenbuch lassen sich nur einsehen, wenn man über Login angemeldet ist. Eine Gesamtübersicht der jährlichen Zusammenfassung steht allerdings noch aus.
Die Tabelle SK für "SpezialKunden" ist ein Liste von Namen und Daten, die ich mal zu Testzwecken für Datanbanken angelegt hatte. Diese Tabelle hat historische Wurzeln und wurde etwa 1986 begonnen. Für das von Robotron geklonte "dbase II" als "Redabas", ein Datenbankprogramm, brauchte ich damals eine Datenbank zum Testen. In der DDR-Zeitschrift "Microprozessortechnik" hatte jemand eine solche Tabelle mit Phantasienamen vorgestellt. Diese hatte ich übernommen und im Laufe von über 30 Jahren häufig angepasst und erweitert.

Bilder

Hinter diesem Menü verbergen sich Unterpunkte zu verschiedenen Bildergruppen. Damit sollen verschiedene Wege getestet werden, wie eine Bildergalerie auf einer Internetseite eingebunden werden kann. Viele solcher Softwarelösungen sind sehr umfangreich ausgestattet und nicht so einfach in ein bestehendes Projekt einzubauen.
Die hier vorgestellten Lösungen sind einfach zu bedienen und benötigen einen geringen Aufwand für die Erstellung und Pflege. Selbstverständlich sind diese für den privaten Gebrauch kostenlos.
Aktuell ist nur die Lösung von "VisualLightBox" in Aktion.
Die verwendeten Bilder stammen alle aus eigener Knipserei oder aus der Familie.

Messung auf dem Balkon

Balkon Mess-Station
Nachdem die Software für die Auswertung der von Openweathermap.org bereitgestellten Wetterdaten funktionierte, war die Frage, wie kann man eine eigene Wettermessung realisieren. Da fand ich einen Artikel in der Zeitschrift für den Raspberry Pi, der sich mit der Messung von Luftdaten beschäftigte. Da ich noch einen Sensor für Temperatur und Luftfeuchte hatte, habe ich einen Versuchsaufbau gestartet. Die Software war schnell erzeugt, da es genügend Beispiele dazu gibt. Natürlich werden die Daten in einer Datenbank gesichert und über eine Website sichtbar gemacht. Damit war der Weg geebnet, ein Kästchen mit einem Raspberry Pi Zero W, dem Sensor DHT22 und einer 5V Powerbank zu bestücken und auf dem Balkon aufzustellen. Inzwischen hatte ich mir einen neuen Sensor bestellt. Der BME-680 Sensor kann Temperatur, Luftdruck, Luftfeuchtigkeit und Luftgüte messen. Damit wurde das Kästchen auf dem Balkon neu bestückt und die Anzeige in die Internetpräsenz eingebaut. Eine Einschränkung gibt es, denn die Luftgütemessung ist nur für Innenräume gedacht (Indoor Air Quality). Aber die Tendenz der Luftgüte, über den Tag verteilt, läßt sich gut erkennen.
Im Menüpunkt "Wetter" bei "Messstation Balkon" sind die Ergebnisse für den aktuellen Tag sichtbar. Durch Einstellung eines Datums und Klick auf "Anzeigen" kann man sich den Verlauf an einem anderen, aufgezeichneten Tag ansehen. Eine grafische Darstellung der Balkonmessung wird über den Menüpunkt "Mess-Grafik" erreicht.

Die Programmierung

Die Programmierung der einzelnen Abschnitte, auf der Startseite sichtbar, soll hier in groben Zügen aufgezeigt werden.
Für die Darstellung von PHP-Code gibt es eine farbig gehaltene Lösung die im PHP-Code schon vorgesehen ist. Leider ist das nicht bei Python der Fall, so dass diese Abschnitte hier sehr nüchtern aussehen.
Ich bin kein Profi beim Programmieren, sondern habe mir alles autodidaktisch angeeignet. Deshalb versuche ich, von den Veröffentlichungen im Internet zu profitieren und mische Gesehenes mit eigenen Ideen und Erkenntnissen. An mehreren Stellen sind Hinweise zur Quelle der Programmteile enthalten.
Die Gestaltung ist so gewählt, dass die Programmteile, die durch den HTML-Code im Browser ersichtlich sind, nicht aufgeführt werden. Diese Programmteile sind durch die Anzeige des Quelltextes im Browser ersichtlich.
Programmteile, die nur auf dem Webserver oder den Raspberry Pi's laufen, werden im Wesentlichen angezeigt. Die verwendeten Pfade, die Datei- und Datenbanknamen, sowie die Passwörter sind geändert dargestellt.
Ein Teil des Abschnittes zeigt auch die verwendeten CRON-Jobs, die viele Aufgaben steuern.