Skip to content

A9xxx/Install-E3DC-Control

Repository files navigation

E3DC-Control Web-Portal & Installer

Ein hochperformantes, modulares Dashboard und Installations-System für die native Python-Architektur A9xxx/Install-E3DC-Control Version. Es verwandelt das System in ein intelligentes Smart-Home-Zentrum mit moderner Web-Oberfläche, eigenem Energy Manager und proaktivem Systemschutz.

E3DC-Control Dashboard

Release- und Update-Hinweis

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

⚠️ Achtung: Nutzung auf eigenes Risiko! Diese Software greift aktiv in Energieflüsse, Speicher-, Wallbox-, Wärmepumpen- und Smart-Home-Logik ein. Installation und Betrieb setzen voraus, dass der Nutzer seine Anlage, Netzvorgaben und Leistungsgrenzen fachlich versteht. Ausführlicher Haftungsausschluss siehe unten.

✨ Highlights & Features

Aktueller Architekturstand: Die zentrale Konfiguration liegt weiterhin in data/e3dc_v4.json. Der Dateiname bleibt aus Kompatibilitätsgründen bestehen. Eine alte e3dc.config.txt wird 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.

📊 Modernes Live-Dashboard & Statistik

  • 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.py kö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.

⚡ Smart Charging & Luxtronik Energy Manager

  • 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.php als Aktuator geführt, normale openWB-Software bleibt sauber in Primary-/Secondary-Rollen getrennt. Die sichtbaren Modi sind Aus, PV-Kurve ruhig, Grundladung stabil, Ziel wbminSoC, Sofort bis Preislimit und Akku bis Abfahrt; geplantes Netzladen greift in allen aktiven Modi und bleibt bei Aus gesperrt.
  • 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.

🚀 Maximale Performance & SD-Karten-Schutz

  • 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 NaN werden 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.

🏠 Smart Home Integration

  • 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/chargePower kö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.

🛡️ System-Stabilität & Watchdog

  • 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.

🔄 Auto-Update & Rollback

  • 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.

📸 Screenshots

Einblicke in die Oberfläche öffnen (Klicken)

Live Energiefluss (Animiert) Screenshot 2026-04-17 230951

Luxtronik / Wärmepumpen Integration Screenshot 2026-04-17 231017

Batterie-Health & Vitals Dashboard Screenshot 2026-04-17 225749


💬 Community & Support

Besuche unseren offiziellen Support-Thread im Photovoltaikforum für Fragen, Feedback und Updates: 👉 E3DC-Control (Native Python): KI-Prognose, dynamische Stromtarife & Wallbox-Steuerung


Haftungsausschluss (Disclaimer)

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.


Herkunft & Lizenz

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.


💻 Systemvoraussetzungen

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.

Hardware-Anforderungen

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.

Betrieb in virtuellen Umgebungen

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.


🛠️ Installation (Klassisch auf dem Raspberry Pi)

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 - e3dc

Danach die Installation als dieser Benutzer starten. Der Installer fragt bei Bedarf das sudo-Passwort ab und richtet Systemdienste, Webrechte und Paketabhängigkeiten ein.

Schritt 1: System vorbereiten & Klonen

sudo apt update && sudo apt install -y git
cd ~
git clone https://github.com/A9xxx/Install-E3DC-Control.git Install

Schritt 2: Installer starten

Wechsle in das neue Verzeichnis, korrigiere eventuelle Windows-Dateiendungen und starte das Setup-Skript:

cd Install
sudo python3 fix_bom.py
sudo python3 installer_main.py

Schritt 3: Installation / Update starten

Wä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

🐳 Installation (Via Docker)

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.

Schritt 1: Docker installieren

curl -fsSL https://get.docker.com | sudo sh

Schritt 2: Repository klonen

git clone https://github.com/A9xxx/Install-E3DC-Control.git ~/e3dc-docker
cd ~/e3dc-docker

Schritt 3: Datenverzeichnis vorbereiten

mkdir -p data
# Optional: alte e3dc.config.txt nur für die Erstmigration ablegen:
cp /dein/pfad/e3dc.config.txt data/   # optional

Neue Installationen werden über den Web-Wizard bzw. den Config-Editor in data/e3dc_v4.json eingerichtet.

Schritt 4: Container starten

docker compose up -d

Das Docker-Image enthaelt den Anwendungscode. Das geklonte Repository liefert die docker-compose.yml; Konfiguration und Historie liegen dauerhaft im Docker-Volume bzw. Datenverzeichnis.

Updates einspielen

docker compose pull
docker compose up -d --force-recreate

docker compose pull holt das aktuelle Release inklusive Python/PHP, Startskript und Systempaketen. --force-recreate stellt sicher, dass der Container wirklich aus dem neuen Image gestartet wird.

Wichtig bei Dev-/Repo-Mounts: Wenn deine docker-compose.yml ein lokales Verzeichnis nach /app/pi/Install mountet, überschreibt dieser Host-Code den Release-Code aus dem Docker-Image. Dann muss auch dieses Repository per git pull aktualisiert werden, oder der Mount wird entfernt und nur das GHCR-Image genutzt. Normale Installationen mounten nur data, logs und die Ramdisk.


🛠️ Wartung & Updates

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

About

E3DC Control Installer with Auto-Update

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors