Looking for a shorter, English version of this?
Try tldr.zotteljedi.de/energy-display/.
Wir besitzen seit Anfang 2024 eine Photovoltaik-Anlage mit Energiespeicher. Seit diese in Bebtrieb gegangen ist, schauen wir ständig in die Hersteller-App auf dem Smartphone (bzw. dessen Webseiten-Äquivalent) um herauszufinden, ob wir Überschuss produzieren und es schlau wäre, zeitlich halbwegs unabhängige Verbraucher wie Waschmaschine, Spülmaschine, Wallbox etc. anzuwerfen. Dabei sind es im wesentlichen zwei Parameter, die uns interessieren:
Bei der ins Netz abgegebenen Leistung ist der Momentanwert zwar ein guter Indikator, aber eigentlich will man ja wissen, wie der Verlauf in den nächsten 1-2 Stunden aussehen wird (insbesondere bei ständig wechselnder Bewölkung). Da ein Blick in die Zukunft schwierig ist, bedienen wir uns an der jüngeren Vergangenheit und gehen davon aus, dass es ungefähr so weiter gehen wird. An sich funktioniert das ganz gut, aber: die in der Hersteller-Cloud gespeicherte Historie hinkt oft mehrere Stunden hinterher und ist daher für unseren Anwendungsfall meistens unbrauchbar.
In einem ersten Schritt habe ich mir eine lokale Datenbank (InfluxDB) aufgesetzt, in die ich die Werte der
Anlage füttere. Ein paar Grafana-Dashboards beantworten die Fragen nun ziemlich gut, erfordern aber immer
noch mit einem Smartphone oder Computer die Webseite zu öffnen und die Informationen mental zu verarbeiten.
Mein Kumpel Markus würde das eine 2+ nennen, aber mir hat das noch nicht gereicht; ich wollte eine kleine
Box haben, die ich mir ins Wohnzimmer stellen kann und die mir auf einen Blick sagt, was Sache ist: ein
energy-display
(oder Einspeis-o-meter, wie ich es mittlerweile gerne nenne).
Angefangen hatte ich mit einem Raspberry Pi Zero 2 W, der seine Daten aus besagter Datenbank erhält und über zwei NeoPixel-LED-Module anzeigt. Das ganze habe ich in ein Gehäuse gesteckt, das ich selbst entworfen und auf meinem (damals noch recht frisch erworbenem) 3D-Drucker ausgedruckt habe. Inzwischen sehe ich diese erste Version als Prototypen an und habe den Ansatz mit dem Pi Zero nicht mehr weiter verfolgt. Stattdessen habe ich eine zweite Version entworfen, basierend auf einem Raspberry Pi Pico 1 W (also einem Mikrocontroller, wobei es mir immer noch schwer fällt, eine Maschine mit Dual-core-Prozessor und 133 MHz Taktrate als mikro zu klassifizieren). Dank des deutlich kleineren Controllers, der geringeren Abwärme und der Tatsache, dass ich auf einen Spannungswandler für die Display-Ansteuerung verzichten konnte, ist auch das Gehäuse viel kompakter geworden und sieht jetzt eher wie ein dickes Smartphone aus. (Ja gut, die inzwischen dazugewonnene Erfahrung in der 3D-Konstruktion hat wahrscheinlich auch was damit zu tun.)
Neben einem Fotowiderstand zur automatischen Helligkeitssteuerung verfügt Version 2 auch über einen Lautsprecher (Piezo-Buzzer) sowie einen Drucktaster, die bislang beide noch auf Verwendung warten. Der Drucktaster soll für einen Setup-Modus genutzt werden, in dem der Pico einen WLAN-Hotspot aufmacht, über den die grundlegende Konfiguration vorgenommen werden kann (vor allem die Eingabe der "echten" WLAN-Zugangsdaten). Bislang müssen diese Informationen manuell in einer JSON-Datei eingetragen und im Hauptverzeichnis des Pico-Dateisystems abgelegt werden (also zum Zeitpunkt des Programmierens), was das Vorhandensein einiger Entwicklungstools erfordert und daher nur begrenzt benutzerfreundlich erscheint.
Zum Foto: hier sieht man Version 2.0 an einem halbwegs ergiebigen März-Nachmittag (Batterie ist bereits voll und es werden 2-3 Kilowatt ins Netz eingespeist). Die Lego-Figuren dienen zum einen als Größenmaßstab, zum anderen helfen sie meiner Kamera dabei, die Fokusebene zu finden (durch die Verwendung der Frontplatte als Diffusor werden aus den harten Lichtpunkten der LEDs eher weiche, unaufdringliche Flecken, weshalb meine Kamera die Struktur der Raufasertapete irgendwie interessanter fand).
Unter der Haube passiert noch viel mehr, weshalb ich Unterseiten für die Hardware-Details und Software-Details angelegt habe. Für potenzielle Nachbauer dürften die Kurzanleitung sowie die Known Issues von Interesse sein.
In den letzten beiden Punkten steckt die Idee, eigene Bedingungen (z.B. "wenn die Batterie halb voll geworden ist") formulieren zu können und eine Benachrichtigung zu erhalten, wenn diese eingetreten sind; eine Idee, die bereits seit der Prototypen-Phase in meinem Kopf umher schwirrt. Jedoch, die vielleicht wichtigste Erkenntnis aus der Prototypen-Phase ist: wenn das Gerät erst einmal funktioniert und sich seinen Weg ins Wohnzimmer gebahnt hat, dann lässt der Entwicklungsdruck deutlich nach und andere Themen werden schnell faszinierender. Von daher, mal sehen wie es mit diesem Projekt weitergehen wird -- vielleicht hilft ja auch etwas Feedback?
Datum | Version | Datei | Beschreibung |
---|---|---|---|
2024-09-04 | 1.0 | energy-display-1.0.tar.gz | Quellcode, 3D-Modelle (OpenSCAD), Dokumentation |
2025-02-26 | 2.0 | energy-display-2.0.0.tar.gz | Quellcode, 3D-Modelle (OpenSCAD), Dokumentation |