Ein hochperformantes, modulares Dashboard und Installations-System für die native Python-Architektur A9xxx/Install-E3DC-Control . Es verwandelt das System in ein intelligentes Smart-Home-Zentrum mit moderner Web-Oberfläche, eigenem Energy Manager und proaktivem Systemschutz.
Releases werden mit synchronisierten Versionsdateien (VERSION, Installer/__init__.py, UPDATE_POLICY.json), Changelog-Eintrag und aktualisierter Web-Hilfe veröffentlicht. Vor einem Release laufen die gespeicherten Python-, PHP-, JavaScript- und Logik-Regressionstests.
Warning
Aktueller Architekturstand: Die zentrale Konfiguration liegt weiterhin in
data/e3dc_v4.json. Der Dateiname bleibt aus Kompatibilitätsgründen bestehen. Eine altee3dc.config.txtwird nur noch für Migration und Legacy-Fallbacks importiert. Details stehen in doc/V4_Konfiguration_und_Regelung.md.
Bedienansichten: Config-Editor und Wallbox-Seite unterscheiden zwischen einfacher Ansicht für Einrichtung und täglichen Betrieb sowie erweiterter Ansicht für alle Detailparameter. Die Logik und Abgrenzung sind in doc/Frontend_Ansichten.md dokumentiert.
Neu in 5.2.3d Hotfix: Die Ladekurven-Hysterese führt kleine Speicher nach einem kurzen
AUTO-Freilauf sofort zurück in den Kurven-Haltepfad mit EMS-Ladegrenze 0 W, wenn die Kurve führt und kein echter Speicherladebedarf besteht. Dadurch wird sichtbares Batterie-/Netz-Takten im PV-Überschussfenster reduziert; der Feldfall aus Jens' System ist als Shadow-Regression abgesichert.
- Echtzeit-Energiefluss: Animierte Darstellung aller Energieflüsse (Haus, PV, Netz, Batterie, Wallbox, Wärmepumpe). Nodes können je Ansicht verschoben, farblich angepasst und per Standardlayout zurückgesetzt werden.
- Smart-Home Visualisierung: Automatische Einblendung eines Heizstabs (sofern konfiguriert) und eines pulsierenden, roten Warn-Banners bei einem E3DC-Notstrom-Einsatz.
- Tagesstatistik: Hochpräzise Echtzeit-Berechnung von Autarkie und Eigenverbrauch sowie detaillierte Aufschlüsselung der Energieverteilung in kWh und Prozent.
- CO₂-Fußabdruck & Gamification: Ein animierter CO₂-Baum wächst mit dem Autarkiegrad – vom Setzling 🌱 zum vollen Wald 🌲🌳🌲. Zeigt die täglich eingesparten kg CO₂ basierend auf dem deutschen Strommix (0,38 kg/kWh) an.
- Energie-Quellen (Mix): Ein interaktives Doughnut-Chart mit klickbarer Legende (PV, Einspeisung, Bezug, Batterie laden/entladen) und farbcodierten Energiebilanz-Badges auf dem Smartphone.
- Langzeit-Archiv (SQLite): Betrachte interaktive Balkendiagramme für die Bilanzen der letzten Tage, Monate oder Jahre inkl. Stromkosten-Mittelwert. Ein administrativer Statistik-Editor erlaubt zudem die rasche Korrektur von Messfehlern direkt in der Datenbank.
- Aufgeräumtes Design: Ein globales Auge-Icon in der Kopfleiste erlaubt es dir, detaillierte technische Parameter in Echtzeit aus dem Dashboard auszublenden, um eine wunderschön puristische und ablenkungsfreie Oberfläche zu schaffen.
- Responsive & PWA: Vollständig optimiert für Desktop und Mobile (Dark/Light Mode). Dank PWA-Support wie eine native App installierbar. Inklusive optionalem PIN-Schutz.
- Labor & Time-Machine: Mit dem beigelegten
simulator.pykönnen aufgezeichnete Historien-Daten alter Tage als Replay im Zeitraffer abgespielt werden. - 🧭 Batterie-Diagnostik (Vitals): Ein dediziertes Batterie-Gesundheits-Dashboard zeigt SOH, Ladezyklen, Zelltemperaturen (Min/Max) und den Zell-Drift (Spannungs-Spread in mV) pro Pack in Echtzeit an. Basiert auf dem Open-Source-Projekt RSCPGui von rxhan via direktem RSCP-Zugang zum BMS der E3DC.
- Multi-EV Support (Flotten-Management): Das System unterstützt mehrere Fahrzeuge per Bluelink, MQTT, openWB-SoC oder manueller Vorlage. Auf der Wallbox-Seite werden Fahrzeuge direkt pro Wallbox zugeordnet, damit Akku, Ziel-SoC und Ladeleistung auch bei Wallboxen ohne Fahrzeugerkennung eindeutig passen.
- Dynamische Ladezeit-Berechnung: Das Dashboard (und das Backend) berechnet durchgängig anhand der aktuellen Ladeleistung vollautomatisch die geschätzte Restdauer bis zum Erreichen von 100% sowie zum Ziel-SoC.
- Universal-Wallbox Integration: Nativer, entkoppelter Python Wallbox Manager mit Dual-WB Support für E3DC, openWB/openWB Pro und go-e. openWB Pro wird direkt über
connect.phpals Aktuator geführt, normale openWB-Software bleibt sauber in Primary-/Secondary-Rollen getrennt. Die sichtbaren Modi sindAus,PV-Kurve ruhig,Grundladung stabil,Ziel wbminSoC,Sofort bis PreislimitundAkku bis Abfahrt; geplantes Netzladen greift in allen aktiven Modi und bleibt beiAusgesperrt. - Intelligenter SoC- und Reichweiten-Sync: Verzichtest du auf eine direkte Fahrzeuganbindung, kann der SoC des Fahrzeugs am Dashboard manuell übermittelt werden. Das System rechnet (interpoliert) ab dann vollautomatisch im Hintergrund die eingeladene Energie ein. Bei openWB-SoC berechnet E3DC-Control die Restreichweite aus Akku-Kapazität und hinterlegtem Verbrauch, damit openWB und Dashboard vergleichbare km-Werte zeigen.
- Bidirektionales Laden (V2X / V2H): Vorbereitet für V2H-Wallboxen. Der Energy Manager überwacht den Fahrzeug-SoC und schützt den Auto-Akku vor versehentlicher Tiefenentladung.
- Universal Wärmepumpen-Integration: Native Anbindung für Luxtronik (WebSocket), IDM-Wärmepumpen (Modbus-TCP) und Stiebel Eltron ISG/WPM (read-only Live-Daten). IDM kann mit PV-Überschuss und konfigurierbarer Leistungsobergrenze ruhig als Grundlast laufen; Stiebel liefert Livewerte und nutzt optional einen externen Shelly-Leistungsmesser für die elektrische Live-Leistung in Dashboard/R5. SG-Ready per WLAN-Shelly bleibt als robuste Freigabe für andere Marken verfügbar. Details: Stiebel-Eltron-ISG-Dokumentation.
- Storage Simulator & adaptive Ladekurve: Die Anlage plant vollautomatisch voraus. Wetterprognosen, saisonaler Nachtverbrauch, EPEX/Eco-Score und optionales Mittagsziel erzeugen eine geglättete Soll-SoC-Kurve. Der Storage Manager führt die Kurve weich über
iFc, Kontroll-SoC und gedämpften Aufholbedarf; Pre-Dump schafft vor Kurvenstart Platz gegen Abregelung. Die Abregelreserve hält an passenden Hochleistungs-/Cloud-Edge-Tagen Speicherplatz für PV-Spitzen frei, ohne echten Netz-/WR-Abregeldruck zu blockieren. Der optionale Unwetterwächter kann DWD-Warnungen als Kurvenanker oder Nachtreserve berücksichtigen; Netzladen bleibt ein separates Opt-in. - Geplante Lastfenster: Große, nicht direkt steuerbare Verbraucher können als enges Zeitfenster mit statischer Leistung hinterlegt werden. Der Simulator berücksichtigt die Last in der Prognose, der Manager schützt den Speicher aber erst, wenn die Last im Fenster plausibel sichtbar ist. Details: Geplante Lastfenster.
- RAM-Disk Caching: Konfigurationen, Strompreise, Live-Werte und Log-Daten werden intelligent im Arbeitsspeicher gehalten. Dies schont die SD-Karte des Raspberry Pi massiv und reduziert die CPU-Last.
- Native Python Live-API: Der RSCP-Live-Dienst schreibt atomare JSON-Werte direkt in die RAM-Disk. Ungültige Werte wie
NaNwerden abgefangen, damit Dashboard, Historie und MQTT-Hub stabil weiterlaufen. - Frontend-Optimierung: Statische Assets (JavaScript) werden automatisch komprimiert (minifiziert) und mit Cache-Busting-Mechanismen ausgeliefert, um die Ladezeiten des Dashboards zu minimieren.
- Apple Home / Google Home (Matter Bridge - Alpha): Nativ zertifizierungsfähige Matter-Integration (experimentelle Entwicklervorschau). Bringt das E3DC Hauskraftwerk demnächst lokal und komplett ohne Cloud in dein Smart-Home-Ökosystem!
- Web-Push Benachrichtigungen: Native Push-Nachrichten für Alarme (Notstrom, HA-Failover) und dynamische Statusmeldungen (Ziel-SoC erreicht, Erinnerungen) proaktiv und direkt auf das Smartphone – völlig ohne externe Messenger-Apps!
- E3DC MQTT Hub (Auto-Discovery): Das System pusht vollautomatisch alle Live-Werte (PV, Netz, WP, Wallbox, Strompreis) an deinen MQTT-Broker. Direkte evcc/openWB-Leistungstopics wie
evcc/loadpoints/1/chargePowerkönnen ohne Home Assistant als reale Wallboxleistung eingebunden werden. - Entkoppelte Architektur: Dedizierte Dienste lesen und schreiben JSON-Daten hocheffizient über die RAM-Disk und halten Netzwerk-, Web- und Regelungslogik voneinander getrennt.
- High Availability Cluster (HA): Unterstützung für einen zweiten Raspberry Pi als Ausfall-Backup (Aktiv/Passiv). Mit vollautomatischem Failover, Smart Config-Sync und Auto-Recover.
- Langzeit-Sync: Die gesamte Ladehistorie und SQLite-Datenbank wird in Echtzeit redundant auf dem Slave gespiegelt.
- Systemd-Dienste: Alle Kernmodule (
e3dc-live, Storage Manager, Storage Simulator, Wallbox Manager, MQTT-Hub und optionale Verbraucher) laufen als robuste Hintergrunddienste mit Auto-Restart-Fähigkeit. - Piguard Watchdog: Überwacht das Netzwerk, den SD-Karten-Speicher und Dateihänger. Startet bei Bedarf einzelne Dienste (oder den Raspberry Pi) intelligent neu.
- Telegram-Benachrichtigungen: Erhalte tägliche Statusberichte (Uptime, Temperatur), Tagesstatistiken zur Energieverteilung sowie einen detaillierten Wochenrückblick direkt auf dein Smartphone. Komfortabel über das Web-UI ohne lästige Cronjobs konfigurierbar.
- Wartungsfrei: Automatisches Log-Management (Log-Rotation) und begrenzte Update-/Installer-Backups verhindern volllaufende Festplatten. Eine intelligente Selbstreparatur der Dateirechte sorgt für störungsfreien Dauerbetrieb.
- 1-Click Web-Updater: Das System lässt sich pfeilschnell und komfortabel direkt über das Web-Dashboard (
index.php) aktualisieren. Der Installationsfortschritt wird dabei flüssig und in Echtzeit im Browser visualisiert – kein Terminal oder SSH mehr nötig! - Selbstheilend: Das System prüft alternativ (optional vollautomatisch) nachts auf Updates und aktualisiert das E3DC-Core-Programm sowie das Web-Dashboard autonom.
- Sicheres Rollback: Vor jedem Update wird ein lokales Backup erstellt, zu dem jederzeit per Mausklick (oder über das Konsolenmenü) zurückgekehrt werden kann.
Besuche unseren offiziellen Support-Thread im Photovoltaikforum für Fragen, Feedback und Updates: 👉 E3DC-Control (Native Python): KI-Prognose, dynamische Stromtarife & Wallbox-Steuerung
Die Software wird ohne Gewähr für Fehlerfreiheit, Verfügbarkeit, Wirtschaftlichkeit oder Eignung für einen bestimmten Zweck bereitgestellt. Soweit gesetzlich zulässig, übernehmen die Autoren und Beitragenden keine Haftung für direkte oder indirekte Schäden, Fehlsteuerungen, Energieverluste, Netzbezug, entgangene Einspeisevergütung, Hardwareverschleiß, Datenverlust oder Folgekosten, die durch Nutzung, Fehlkonfiguration, Updates oder Ausfall der Software entstehen. Sicherheitsrelevante Einstellungen des Herstellers, Elektroinstallation, Netzbetreiber-Vorgaben und gesetzliche Anforderungen haben immer Vorrang.
E3DC-Control ist eine eigenständige Python-Weiterentwicklung. Die robuste Regelbasis ist fachlich vom ursprünglichen C++-Projekt von Eberhard Mayer inspiriert und wurde mit dessen Zustimmung als Grundlage verstanden und eigenständig neu implementiert. Details stehen in NOTICE.md.
Dieses Projekt steht unter der GNU Affero General Public License v3.0 oder später (AGPL-3.0-or-later). Private Nutzung, Anpassung und Community-Weiterentwicklung sind ausdrücklich willkommen.
Wer das Projekt, abgeleitete Versionen oder darauf basierende Dienste öffentlich bereitstellt, verteilt oder kommerziell nutzt, muss die Bedingungen der AGPL einhalten und den vollständigen zugehörigen Quellcode offenlegen. Kommerzielle Sonderlizenzen oder Integrationen außerhalb der AGPL sind nur nach vorheriger schriftlicher Zustimmung möglich.
E3DC-Control ist ein ressourcenschonendes System zur Steuerung und Optimierung des Energiemanagements. Es läuft auf klassischen Raspberry-Pi-Systemen ebenso wie in virtuellen Umgebungen wie Proxmox, Docker, ESXi oder auf kleinen Intel-/AMD-Hosts.
Die folgenden Werte sind Richtwerte für einen stabilen Dauerbetrieb:
| Komponente | Minimal, z.B. Raspberry Pi 3 | Empfohlen, z.B. Raspberry Pi 4 / 5 |
|---|---|---|
| CPU | 1 bis 2 Cores | 2 Cores |
| Arbeitsspeicher | 1 GB RAM | 2 GB RAM |
| Swap-Speicher | mindestens 512 MB | 1 GB |
| Speicherplatz | 8 GB freier Speicher | 16 GB oder mehr |
Hinweis zu Speicherplatz und RAM-Disk: Eine normale Installation kann inklusive Paketen, Webdateien, Python-Umgebung, Logs, Diagnose- und Backupdaten bereits mehr als 4 GB belegen. Unter 8 GB freiem Speicher wird der Betrieb schnell eng. Werden temporäre Daten und Logfiles in einer RAM-Disk gehalten, schont das SD-Karten und SSDs, belegt aber direkt physischen Arbeitsspeicher. Für RAM-Disk, Docker, ML-Prognose oder größere Diagnosepakete sind 2 GB RAM dringend empfohlen.
LXC-Container, empfohlen für Proxmox: LXC teilt sich den Kernel mit dem Host und arbeitet sehr effizient. Für E3DC-Control reichen in der Praxis meist 2 vCores, 1 GB RAM und 512 MB bis 1 GB Swap.
Virtuelle Maschine, z.B. KVM/ESXi: Eine VM bringt den Eigenbedarf des Gast-Betriebssystems mit. Plane 2 vCores, 1 bis 2 GB RAM und 1 GB Swap ein.
Wichtig: Ein Betrieb ohne Swap wird in VMs nicht empfohlen. Bei Lastspitzen, etwa während
apt-get-Updates oder Modulinstallationen, kann der Linux-Kernel sonst Prozesse über den Out-of-Memory-Killer beenden.
Die Installation erfordert einen Raspberry Pi oder ein Debian-basiertes System und einen normalen Benutzer mit sudo-Rechten. Gemeint ist nicht, dass du dich als Benutzer root anmelden sollst. Installiere aus einem eigenen Admin-Benutzer, z.B. pi, andreas oder e3dc.
Falls noch kein geeigneter Benutzer vorhanden ist:
sudo adduser e3dc
sudo usermod -aG sudo e3dc
su - e3dcDanach die Installation als dieser Benutzer starten. Der Installer fragt bei Bedarf das sudo-Passwort ab und richtet Systemdienste, Webrechte und Paketabhängigkeiten ein.
sudo apt update && sudo apt install -y git
cd ~
git clone https://github.com/A9xxx/Install-E3DC-Control.git InstallWechsle in das neue Verzeichnis, korrigiere eventuelle Windows-Dateiendungen und starte das Setup-Skript:
cd Install
sudo python3 fix_bom.py
sudo python3 installer_main.pyWähle im interaktiven Menü für eine Ersteinrichtung die Option "1 Installation / Update". Der Installer richtet die benötigten Pakete, Dienste, Webdateien, Rechte und den Web-Wizard ein. Falls du aus älteren Anleitungen die Nummer 11 kennst: Diese Eingabe wird aus Kompatibilitätsgründen ebenfalls akzeptiert.
Das Konsolenmenü ist bewusst klein gehalten:
1) Installation / Update
2) Systemstatus anzeigen
3) Rechte prüfen & korrigieren
4) Notfallmodus / System reparieren
5) Rollback auf Git-Stand
6) Backup erstellen / verwalten
7) Expertenmenü
8) Systempakete vorbereiten
9) Deinstallation
q) Beenden
Erweiterungen wie Docker, Energy Manager, native Wallbox, MQTT, Bluelink oder HA liegen gesammelt im Expertenmenü. Normale Konfigurationen erfolgen danach im WebUI.
Das Expertenmenü ist in 10er-Blöcke sortiert:
Kernsystem & Update
14) Rollback (Datei-Backup)
15) Watchdog & Telegram konfigurieren
Umgebung & Python
21) Python venv neu aufbauen (Reparatur)
22) Python venv Namen ändern
Docker Migration & Verwaltung
31) Zu Docker wechseln (Auto-Install & Migration)
32) Docker auflösen & zum lokalen System zurückkehren
Erweiterungen & Smart Home
41) Energy Manager
E3DC-Control kann alternativ komplett isoliert über Docker betrieben werden. Das Image unterstützt native ARM- (Raspberry Pi) sowie AMD64-Architekturen (Intel NUC, Synology, QNAP).
Voraussetzung: Docker und Git müssen installiert sein.
curl -fsSL https://get.docker.com | sudo shgit clone https://github.com/A9xxx/Install-E3DC-Control.git ~/e3dc-docker
cd ~/e3dc-dockermkdir -p data
# Optional: alte e3dc.config.txt nur für die Erstmigration ablegen:
cp /dein/pfad/e3dc.config.txt data/ # optionalNeue Installationen werden über den Web-Wizard bzw. den Config-Editor in data/e3dc_v4.json eingerichtet.
docker compose up -dDas Docker-Image enthaelt den Anwendungscode. Das geklonte Repository liefert die docker-compose.yml; Konfiguration und Historie liegen dauerhaft im Docker-Volume bzw. Datenverzeichnis.
docker compose pull
docker compose up -d --force-recreate
docker compose pullholt das aktuelle Release inklusive Python/PHP, Startskript und Systempaketen.--force-recreatestellt sicher, dass der Container wirklich aus dem neuen Image gestartet wird.
Wichtig bei Dev-/Repo-Mounts: Wenn deine
docker-compose.ymlein lokales Verzeichnis nach/app/pi/Installmountet, überschreibt dieser Host-Code den Release-Code aus dem Docker-Image. Dann muss auch dieses Repository pergit pullaktualisiert werden, oder der Mount wird entfernt und nur das GHCR-Image genutzt. Normale Installationen mounten nurdata,logsund die Ramdisk.
Der Installer dient gleichzeitig als dein zentrales Wartungstool. Starte ihn jederzeit erneut (sudo python3 installer_main.py), um Updates einzuspielen, Berechtigungen zu reparieren, Modbus-Geräte nachzuinstallieren oder Backups zu verwalten.
Für automatisierte Abläufe (z.B. via Cronjob) gibt es den Headless-Modus: sudo python3 installer_main.py --unattended


