Hallo zusammen,
ich möchte euch mein Projekt Energy Node vorstellen und zusätzlich dazu eine Home-Assistant-Integration, die daraus entstanden ist und einen LiFePO4-SoC ohne BMS-Zugriff berechnet.
Wie kam es dazu?
Entworfen habe ich das Ganze ursprünglich für meine Eltern. Insbesondere mein Vater hat in seiner Werkstatt eine kleine PV-Anlage mit APsystems-EZ1-Wechselrichtern, einem DIY-Speicher mit Lumentree-Wechselrichter und Trucki-Stick, ein paar Shellys und ein Tuya-Wasserventil für die Heizung. Bisher steuert er alles über die Cloud-Services der einzelnen Anbieter und an das Trucki-System kommt er gar nicht von außerhalb dran. Ein Home Assistant läuft bereits im Wohnhaus und es gab konkreten Bedarf die Geräte der Werkstatt auch von dort aus steuern zu können.
Ende Juli habe ich deshalb geplant einen alten Raspberry Pi 1 in der Werkstatt zu installieren. Er sollte alle Geräte lokal abfragen und die Werte per MQTT über Tailscale an Home Assistant im Wohnhaus schicken. Dort sollen sie dann als MQTT-Discovery-Entitäten auftauchen und wie jedes andere Gerät eingebunden werden können. Diesen prozess habe ich dann händisch eingerichtet und kleine Skripte für die einzelnen Geräte geschrieben. Für eine Oberfläche probierte ich anfangs bestehende Lösungen aus, die auf einem Pi mit Armv6 noch laufen. Doch die meisten Lösungen wirkten einfach veraltet oder haben schlicht nicht das ermöglicht, was ich mir vorgestellt hatte, sodass ein eigenes Dashboard auf dem Pi letztlich mein Lösungsansatz wurde. Danach kamen nach und nach Funktionen wie eine Geräte-Übersicht, kleine graphische Automatisierungen, Verlaufsdiagramme und ein live editierbares Dashboard dazu. Alles ein wenig in Anlehnung an Home-Assitant, nur abgespeckt und daher lauffähig auf kleinerer Hardware.
Im August habe ich dann beschlossen, dass die Ressourcen die in das Projekt geflossen sind, eigentlich zu schade sind um damit nur eine einzige Anwendung zu betreiben. Daher habe ich das Projekt Energy Node getauft und auf GitHub veröffentlicht.
Was Energy Node stand heute kann
Energy-Node verwandelt eine kleinen Linux-Rechner in einen minimalen Steuerungs- und Mess-Knoten mit Schwerpunkt auf Energie-Technik. Broker, Gerätedienste, Automatisierungen und Dashboard laufen alle autonom. Leistungs- und Speicherhungrigere Datenaufzeichnung und komplexe Steuerungen können dabei über die Anbindung von Home-Assistant realisiert werden. Fällt das Internet oder der VPN aus, können dennoch die wichtigsten Regeln weiterhin durch den Knoten selbst kontrolliert werden und auch das Dashboard bleibt im lokalen Netz erreichbar.
Unterstützt werden im Moment Shelly Gen1 und Gen2+, APsystems EZ1 (inklusive Leistungsbegrenzung), Lumentree-Wechselrichter bzw. alle Trucki-Sticks, Tuya-Geräte über das lokale Protokoll und DIY-LiFePO4-Speicher, deren SoC aus den Werten der anderen Geräte (vorwiegend die Trucki-Geräte) berechnet wird. Alles wird lokal verbunden, ein Konto ist lediglich für den Tailscale VPN notwendig.
Im Dashboard gibt es verschiedene Energiegrafiken, Verlaufsdiagramme, einen Regel-Editor mit Bedingungen, Hysterese und Haltezeiten sowie eine Gerätekarte, auf der man festhält, wie die Geräte miteinander verknüpft sind. Die Verläufe werden im Browser gespeichert (IndexedDB), der Pi selbst hält keine Historie.
| Startseite mit Status, Speicher, Energiefluss und Autarkie | Verlaufsdiagramme (nur wenn Browser dauerhaft offen) |
|---|---|
![]() |
![]() |
| Regel-Editor | Geräte-Übersicht |
![]() |
![]() |
| Weitere Seiten hier (en) |
Der Raspberry Pi 1 mit ARMv6, einem Kern und 512 MB RAM ist die durch den Kontext weiterhin die Grundlage für jede kommende Designentscheidung. Das Dashboard ist deshalb ein einzelnes Go-Binary ohne Datenbank. Gerade deswegen nutzt das Dashboard auch die Browser-Performance, um Flexibilität und das Feeling einer modernen Oberfläche trotz minimaler Server-Leistung zu gewährleisten. Also eine perfekte Verwendung für alte Raspberry Pi Geräte, die für ein volles Home Assistant nicht performant genug sind.
Die Installation auf einem frischen Pi, oder das aktualisieren oder reparieren kann man mit einem Desktop-Installer für Windows, macOS und Linux durchführen. Updates lassen sich aber auch direkt per OTA von GitHub auf dem Dashboard einspielen.
| Hinweis auf ein neues Release im Dashboard | Vorschau vor dem Update |
|---|---|
![]() |
![]() |
Battery SoC als Home-Assistant-Integration
Die SoC-Berechnung für das DIY Battery-System aus dem Energy Node gibt es auch einzeln für Home Assistant, da mein Vater sich vor Begeisterung noch ein zweites DIY-System für sich zuhause gebaut hat. Da dort Home-Assistant dann natürlich verfügbar ist, habe ich den service in eine core-bibliothek geschoben und verwende diesen nun als gemeinsame Grundlage für eine HA Integration und den MQTT standalone service in energy-node.
Der Grund für diese Integration ist, wie die meisten hier wissen dürften, dass die Spannungskurve eines LiFePO4-Akkus zwischen etwa 15 und 85 % so flach ist, dass man daraus kaum etwas über den Ladezustand ablesen kann. Die Integration zählt deshalb die Netto-Leistung am Akku mit, also Ladeleistung minus Entladeleistung, AC oder DC. Weil so eine Zählung mit der Zeit driftet, korrigiert sie den Wert im vollen oder leeren Zustand, also genau da wo der flache Bereich aufhört. Sobald die lastkorrigierte Spannung nahe leer oder nahe voll eine Schwelle überschreitet und der Strom klein genug ist, setzt sie den SoC auf 0 bzw. 100 % zurück. Die Spannung wird dafür vorher um einen stromabhängigen Innenwiderstand pro Zelle bereinigt.
Ihr braucht keine zusätzliche Hardware und keinen direkten BMS-Zugriff. Es reichen ein Sensor für die Ladeleistung, einer für die Entladeleistung und ein Spannungssensor pro Bank. Ein oder zwei Bänke werden unterstützt. Bei Parallelschaltung gibt es einen gemeinsamen SoC, bei Reihenschaltung einen pro Bank und zusätzlich den Wert der schwächsten Bank. Zusätzlich können AC und DC Messwerte gekoppelt eingesetzt werden und viele Feinheiten über Parameter justiert werden.
Eine Lovelace-Karte (ursprünglich aus dem energy-node dashboard) ist ebenfalls dabei, die den Ladezustand als Säule mit Restlaufzeit oder als Ring mit sechs Stunden Verlauf und sechs Stunden Prognose zeigt.
| Lovelace-Karte als Säule | Lovelace-Karte als Ring mit Verlauf und Prognose |
|---|---|
![]() |
![]() |
Die Installation ist über HACS möglich. Im README gibt es den Button, der den HACS-Dialog vorausfüllt.
Nebenbei gibt es auch die Gerätesymbole aus dem Dashboard als Icon-Set für Home Assistant, falls jemand alternative Symbole für Speicher, Wechselrichter, Wallbox und Co. sucht:
AI-Disclaimer und wie man mitgestalten kann
Energy Node und die Integrationen habe ich mit KI-Unterstützung (Claude Code) geschrieben. Den Umfang der Software hätte ich sonst nicht in den letzten drei Monaten neben meiner beruflichen Tätigkeit als Software-Ingenieur berwerkstelligen können. Das Prüfen und Pflegen von Code behalte ich mir auch weiterhin vor, dennoch möchte ich daraus einen Mehrwert für Alle schaffen.
Über Rückmeldungen freue ich mich, gerne auch als Issue auf GitHub. Besonders interessiert mich, wie gut die SoC-Schätzung bei anderen Speichern funktioniert und welche Geräte euch an einem Außenstandort noch fehlen würden. Vielleicht nicht nur rein theoretisch, sondern wirklich, falls ihr energy-node wirklich im praktischen Anwendungsfall für eins eurer Projekte in Betracht ziehen würdet.
Viele Grüße
Simon
PS: Zurzeit arbeite ich an der Lokalisierungs des Dashboards, wodurch das Dashboard dann auch auf englisch verfügbar sein wird. Zurzeit gibts alles nur auf Deutsch, aber das sollte hier hoffentlich kein großes Problem sein ![]()







