Energie · PV · Open Source

Zeus Charge Control: PV-Batterie intelligent laden mit dynamischen Strompreisen

Preisfenster erkennen, Ladepläne automatisieren, RSOC & Status im Blick – Source-only (benötigt Java 17 + Maven).

tiny-tool.de

tiny-tool.de – Symbolbild – KI generiert


Dynamische Stromtarife können richtig Geld sparen – aber nur, wenn man Verbrauch (und Speicher) clever in günstige Zeitfenster legt. Zeus Charge Control ist eine Java/Spring-Boot-Anwendung, die Ladepläne für PV-Batteriespeicher anhand von Marktpreisen (z. B. aWATTar oder Tibber) und optional Wetterdaten (Open-Meteo) optimiert.

Ziel: günstig laden, teure Netzphasen vermeiden – und dabei transparent bleiben, was die App gerade tut. Kein „Magie-Button“, sondern nachvollziehbare Regeln + Visualisierung.

Was ist Zeus Charge Control?

  • Monitoring: RSOC/Batteriestatus + Visualisierung im Web-UI
  • Preislogik: günstigste Zeitfenster im konfigurierten Toleranzbereich finden
  • Schwellwerte: Laden nur bis zu einem max. akzeptierten Preis (Cent/kWh)
  • Nachtfenster: planbare Zeiträume (z. B. abends/nachts), optional mit Leerlauf-/Night-Idle-Verhalten
  • Wetter optional: Open-Meteo kann Entscheidungen ergänzen (z. B. bei erwarteter PV-Produktion)
  • Fehlertoleranz: Batterie/API-Ausfälle → Logging, App bleibt stabil

Praktisch heißt das: Die App schaut regelmäßig auf Preis- und (optional) Wetterdaten, prüft deinen Batteriestand (RSOC)
und legt daraus Ladefenster an – so, dass du möglichst selten „teuren“ Strom in die Batterie lädst.

Für wen lohnt sich das?

Für PV-Nutzer mit Batteriespeicher, deren System die Sonnen API v2 nutzt – und die dynamische Preise
(z. B. aWATTar/Tibber) wirklich ausnutzen wollen. Ideal, wenn du:

  • einen dynamischen Tarif hast und Preise stark schwanken
  • nachts oder in bestimmten Zeitfenstern günstig laden willst
  • Transparenz willst (Dashboard statt Blackbox)
  • gern selbst konfigurierst (Schwellenwerte, Zeitfenster, Regeln)

Wichtige Hinweise (Experimental / Private Use)

⚠️ Experimental / Private Use

Dieses Projekt ist experimentell und primär für private Nutzung, Tests und Lernzwecke gedacht.
Es ist nicht für produktiven Dauerbetrieb in sicherheitskritischen oder kommerziellen Umgebungen vorgesehen.

Automatisierte Ladeentscheidungen sind konfigurations- und datenbasiert. Prüfe Einstellungen & Verhalten
sorgfältig, bevor du es dauerhaft laufen lässt.

Web-UI & Visualisierungen

Status & Dashboard: /charging-status

Hier siehst du Batteriestatus (RSOC), Preisübersichten, erkannte günstige Zeitfenster und geplante Ladeperioden.
Zusätzlich gibt es ein Control-Panel (je nach Modus) für Steuerung & Status.

Steuerelemente & Dashboard

So arbeitet die Lade-Logik

Das Grundprinzip

  1. Batteriestand prüfen (RSOC) → Wenn Ziel erreicht: keine Ladung nötig.
  2. Preise laden (aWATTar/Tibber) → günstige Zeitfenster im gewünschten Zeitraum suchen.
  3. Regeln anwenden: max. akzeptierter Preis + Flex-Threshold + Nachtfenster.
  4. Ladeplan setzen → und im UI sichtbar machen.

Typisches Szenario

  • RSOC liegt unter deinem Ziel (z. B. 90 %)
  • Es ist (noch) keine PV-Produktion zu erwarten
  • Im Nachtfenster existieren sehr günstige Preise
  • → App plant ein oder mehrere Ladefenster innerhalb des erlaubten Zeitraums
Wichtig: Die Software ist bewusst nicht „starr“. Du kannst Schwellenwerte, Zeitfenster und Toleranzen anpassen,
damit sie zu deinem Tarif und deinem Alltag passen.

Setup: Source-only Build & Start (Java 17 + Maven)

📦 Keine Binaries / keine Releases

Zeus Charge Control wird bewusst ohne vorkompilierte Binary-Releases bereitgestellt.
Du baust es lokal aus dem Quellcode.

Build

mvn clean package

Start

Nach dem Start erreichst du das Web-UI typischerweise hier:

http://localhost:8080/charging-status

Konfiguration: wichtigste Parameter

Die App ist über application.properties und/oder Umgebungsvariablen konfigurierbar.
Hier die wichtigsten Stellschrauben (Praxis-fokussiert):

Minimal-Setup (Beispiel)

battery.target.stateOfCharge=90
marketdata.source=awattar
marketdata.max.acceptable.price.cents=15
marketdata.price.flexibility.threshold=2
night.start=19
night.end=6

Was bedeuten die Werte?

  • battery.target.stateOfCharge: Ziel-RSOC, ab dem nicht mehr aktiv geladen wird.
  • marketdata.source: Preisquelle (awattar oder tibber).
  • marketdata.max.acceptable.price.cents: Preis-Deckel: darüber wird nicht geplant.
  • marketdata.price.flexibility.threshold: Toleranz/Feinjustierung, um etwas „flexibler“ zu laden.
  • night.start / night.end: Zeitfenster, in dem die App bevorzugt/gezielt plant.

Troubleshooting & typische Stolperfallen

Die häufigsten Ursachen

  • Batterie nicht erreichbar (Netz/Firewall/VPN) → App loggt Fehler und läuft weiter.
  • Tokens/URLs falsch oder abgelaufen → Auth-Fehler in Logs.
  • Preisdaten fehlen (Provider/Timeout) → nächster Scheduled Run greift.
  • Zeitzone/Nachtfenster unpassend → Planung wirkt „komisch“.

FAQ

Warum gibt es keinen Download / kein Binary?

Das Projekt wird bewusst als Source-only – damit gibt es keine implizite „Produkt“-Erwartung.

Kann ich das dauerhaft auf einem Server laufen lassen?

Technisch ja – aber bitte beachte: experimental/private use. Wenn du es produktiv betreibst,
mach das bewusst, dokumentiert, und mit sauberer Konfiguration/Monitoring.

Unterstützt Zeus Charge Control Anbieter X?

Aktuell sind aWATTar und Tibber als Marktpreisquellen vorgesehen, plus optional Open-Meteo für Wetterdaten.

Was passiert, wenn die Batterie offline ist?

Die App bleibt stabil, protokolliert Fehler und versucht es beim nächsten Lauf erneut.

Disclaimer & Haftungsausschluss

Keine Verbindung zur Sonnen GmbH

Dieses Projekt steht in keiner Verbindung zur Sonnen GmbH.
Die Software wurde nicht von der Sonnen GmbH entwickelt, bereitgestellt oder unterstützt.

Die Nutzung der Sonnen API v2 erfolgt ausschließlich auf Basis öffentlich zugänglicher Schnittstellen und Dokumentationen.
Alle Marken-, Produkt- und Firmennamen sind Eigentum der jeweiligen Rechteinhaber.

Haftungsausschluss

Die Inhalte und der Quellcode dienen ausschließlich der allgemeinen Information und stellen
keine fachliche Beratung dar – insbesondere keine rechtliche, steuerliche, finanzielle oder energetische Beratung.

Insbesondere übernimmt der Autor keine Haftung für Schäden, die durch Fehlkonfiguration, Fehlinterpretation von Marktdaten oder automatisierte Ladeentscheidungen entstehen.

Nutzung auf eigene Verantwortung. Haftung für materielle oder immaterielle Schäden ist ausgeschlossen, sofern kein vorsätzliches oder grob fahrlässiges Verschulden vorliegt.

https://tiny-tool.de/maven-und-die-pom-xml/

Fazit

Zeus Charge Control ist ein praktischer Baustein, wenn du dynamische Preise ernst nimmst und deine Batterie
nicht „irgendwie“, sondern strategisch laden willst – transparent, nachvollziehbar und mit konfigurierbaren Regeln.


🔎
Transparenzhinweis:
Die Inhalte auf tiny-tool.de werden sorgfältig recherchiert, redaktionell geprüft und regelmäßig aktualisiert. Quellen und Zitate werden nachvollziehbar angegeben. Dennoch übernehmen wir keine Garantie für Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Informationen. Irrtümer sind nicht ausgeschlossen.

Urheber & redaktionelle Unterstützung: Texte auf tiny-tool.de sind geistige Werke der Redaktion (Endredaktion: Guido Zeuner). Digitale Werkzeuge – darunter auch KI-basierte Hilfsmittel – kommen lediglich als Assistenzsysteme bei Recherche, Struktur oder Sprachoptimierung zum Einsatz. Auswahl der Inhalte, Struktur, Argumentation und finale Textfassung stammen von uns als natürlichen Personen; KI-Systeme sind keine Urheber.

Reichweitenmessung (VG Wort / METIS): Zur Ermittlung der Textreichweite werden Zählmarken der VG Wort eingesetzt. Aus technischen Gründen werden diese beim Aufruf der Seite geladen und können derzeit nicht über das Cookie-Banner blockiert werden, da keine Cookies gesetzt werden. Die Messung dient ausschließlich der Reichweitenstatistik; personenbezogene Profile werden nicht erstellt. Mehr dazu in unseren Datenschutzhinweisen.

Bitte beachte: Die Inhalte dienen ausschließlich der allgemeinen Information und stellen keine fachliche Beratung (z. B. rechtlicher, steuerlicher oder finanzieller Art) dar. Die Nutzung der Inhalte erfolgt auf eigene Verantwortung. Eine Haftung für Schäden materieller oder immaterieller Art ist ausgeschlossen, sofern kein vorsätzliches oder grob fahrlässiges Verschulden vorliegt.

Werbung & Affiliate-Links: Einige Beiträge enthalten werbliche Hinweise oder sogenannte Affiliate-Links. Diese sind entsprechend gekennzeichnet. Beim Klick entstehen dir keine zusätzlichen Kosten – wir erhalten ggf. eine kleine Provision.

Markenrechtlicher Hinweis: Alle Markennamen, Logos und Produktbezeichnungen sind Eigentum der jeweiligen Rechteinhaber und werden nur zur identifizierenden Beschreibung verwendet. Es besteht keinerlei Verbindung zu den genannten Unternehmen.

Externe Links: Diese Website enthält Verweise auf externe Websites Dritter. Trotz sorgfältiger Prüfung übernehmen wir keine Verantwortung für deren Inhalte. Bei Bekanntwerden rechtswidriger Inhalte entfernen wir entsprechende Links umgehend.