PiLogger WebMonitor ist kostenlose und freie Open Source Software, die auf dem Raspberry Pi läuft und das Messen und Loggen mit dem PiLogger One über das Netz ermöglicht - ohne Cloud und Fremdserver.

PiLogger WebMonitor macht aus dem Raspberry Pi einen kleinen Webserver, der im eigenen Heimnetzwerk zur Verfügung steht. Damit kann jedes Gerät, das mit dem Heimnetzwerk verbunden ist, mit einem Browser die aktuellen Messwerte anzeigen, den Verlauf grafisch darstellen, die geloggten Daten herunterladen und alle Einstellungen kontrollieren.

Das Design ist 'responsive' , das heisst, die Darstellung passt sich an die Bildschirmgrösse an. Zum Beispiel die Live-Werte-Seite:

WebMonitor Live-Werte auf dem Desktop
Live-Werte Desktop
WebMonitor Live-Werte auf dem Smartphone
Live-Werte Smartphone


Voraussetzungen
Die Software ist für einen Raspberry Pi mit Raspbian Lite (Stretch) ohne Monitor und Tastatur, aber mit Netzwerkverbindung konzipiert. Wegen des Stromverbrauchs bietet sich idealerweise ein Raspberry Pi Zero W an, da er als Single-Core eine geringere Stromaufnahme hat und auch bereits ein sparsames WLAN-Modul integriert hat. Für die Installation solch eines 'headless' Systems mit WLAN-Verbindung gibt es hier eine Anleitung.
Voraussetzung sind jedoch lediglich Raspbian mit Python 3 und eine Netzwerkverbindung und natürlich ein PiLogger One. Tatsächlich lässt sie sich auch auf einem Raspbian mit vollständigem grafischen Desktop installieren und ist dann auch lokal mit z.B. Chromium aufrufbar.
PiLogger auf Raspberry Pi Zero W
Installation
Für ein so vorbereitetes System ist die Installation mit nur einer Zeile in der Konsole (Terminal) möglich, wobei für die Installation eine Internet-Verbindung notwendig ist:

curl -sSL https://www.pilogger.de/get/installer-webmon | bash

Mit dieser Befehlszeile wird ein Shell-Script von unserem Server heruntergeladen und ausgeführt. Das Script kann vorher im Download-Bereich heruntergeladen und mit einem Texteditor begutachtet werden. Das Installer-Script führt alle notwendigen Konfigurationen und Installationen durch. Dabei werden auch die Programm-Dateien in einem Archiv heruntergeladen. Auch dieses Archiv steht im Download-Bereich zur Verfügung.

Nach der erfolgreichen Installation erfolgt der Start einfach durch Eingabe der IP-Adresse des PiLoggers erweitert mit der Port-Angabe :8080 , also zum Beispiel: 192.168.178.21:8080, im Web-Browser. Bei Installation auf einem vollständigen Desktop-Raspbian erfolgt der lokale Aufruf mit 127.0.0.1:8080 . Nach erfolgreichem Start einfach einen Favoriten-Link speichern - der heisst dann auch 'PiLogger WebMonitor'.

Konzept
PiLogger WebMonitor verfolgt zwei Ziele : Effektivität und Privatheit. Das bedeutet zum Einen schlanke Frameworks und keine unnötigen. Zum Anderen werden nach der Installation keine Kontakte mehr zu Internet-Servern benötigt, alles bleibt im eigenen Heimnetzwerk.
Auf dem Raspberry läuft ein kleiner, schlanker Webserver. PiLogger WebMonitor basiert hier auf dem Python Web Framework Bottle von Marcel Hellkamp. Das Hauptprogramm ist somit ein Python 3 Script. Um mit dem PiLogger One per I²C zu kommunizieren, wird das Python Modul smbus verwendet. Um die Interrupt-Leitung des PiLoggers verwenden zu können, wird das Python Modul rpi.gpio eingebunden. Der Taktgeber des PiLogger One wird somit für das Messintervall herangezogen. Die Zeitstempel für die Messwerte steuert der Raspberry bei und synchronisiert dafür seine Systemzeit per NTP. Normalerweise kontaktiert er dafür einen Internet-Server - im Sinne eines privaten Systems ohne externe Verbindungen kann diese Synchronisation in den meisten Fällen aber auch mit dem eigenem Internet-Router erfolgen. Die meisten Router können so konfiguriert werden, dass sie einen NTP-Server für das interne Netz zur Verfügung stellen. Diesen Server kann dann der Raspberry nutzen und kontaktiert dann dafür eben nur den Router. Diese Option kann bei der Installation mit dem Installer-Script gewählt werden.
Der eingebaute Server von Bottle stellt die HTML-Seiten für den Browser auf der Client-Seite zur Verfügung. Um die Anzahl der Server-Anfragen gering zu halten, sind die benötigten Java-Scripte direkt in die HTML-Dateien eingebettet. Es werden keine Web-Schriften (typischerweise von Google) geladen, lediglich die CSS Dateien werden separat vom Raspberry angefordert.
Die Daten werden vom Browser per XHR (AJAX) angefordert und im HTML Design dargestellt. Die Diagramme werden ebenfalls vollständig im Browser (Client) generiert. Die Daten werden in diesem Fall als CSV-Datei heruntergeladen und von der Javascript-Library Dygraphs in ein Canvas-Element (Leinwand) gerendert.
PiLogger WebMonitor nutzt zum Speichern der Messdaten keine Datenbank. Die Daten werden einfach in CSV-Dateien gespeichert. Die Anzahl der Messpunkte (Zeilen) pro Datei kann in der Konfiguration eingestellt werden. Die auf der SD-Karte des Raspberry gespeicherten Datendateien können einfach auf den Client-Rechner heruntergeladen werden. Dort ist dann beispielsweise eine Nachbearbeitung mit einem Spread-Sheet-Programm (Tabellen-Kalkulation) einfach machbar.


PiLogger kaufen