Zendure Smartflow AI - Meine erste Integration

@Palm_Maniac Hi, da du in deiner ReadMe auch um Mitwirkung gebeten hast, hast du nun deinen ersten Pull Request bekommen. :wink: Ich habe dir ein einfaches wiki erstellt, was du jetzt ja noch weiter ausbauen kannst.

Sollte dann unter diesem Link erreichbar sein, wenn ich alles richtig gemacht habe.
https://PalmManiac.github.io/zendure-smartflow-ai/

Den brand und Dashboard Ordner habe ich in diesem Zuge mit unter docs verschoben. Die brauchst nicht mit in den Ordner der Integration packen.

2 „Gefällt mir“

Ein neuer Release mit vielen Fixes und Optimierungen ist raus. Ein sehr großes Dankeschön geht an @schreibsi raus. Er hat intensiv unter anderen Bedingungen getestet als die meinen. Dadurch kamen viele Fehler und Probleme ans Licht, die so nicht aufgetreten wären.

:rocket: Zendure SmartFlow AI v1.4.5 (Final)

Diese Version ist das Ergebnis einer intensiven Beta-Phase mit Fokus auf
Stabilität, präzise Regelung und zuverlässige Preislogik – auch unter
realen, anspruchsvollen Bedingungen.


:wrench: Stabilität & Zuverlässigkeit

  • Behebung mehrerer Fehler, die zu ausgegrauten Sensoren oder Select-Entitäten führen konnten
  • Fix für ungültige ENUM-States (keine Home-Assistant-Fehler mehr durch unbekannte Statuswerte)
  • Absicherung gegen undefinierte Variablen und fehlerhafte Rückgabewerte
  • Robuster Umgang mit fehlenden oder unvollständigen Sensor- und Preisdaten
  • Stabileres Verhalten nach Neustarts (Persistenz & State-Sync)

:high_voltage: Delta-Regelung (Entladen)

  • Einführung einer echten inkrementellen Delta-Regelung
  • Deutlich reduziertes Schwingen („Ping-Pong“) bei kleinen und konstanten Lasten
  • Feinfühlige Annäherung an den Ziel-Netzbezug ohne harte Sprünge
  • Verbesserter Anti-Export-Guard (wirksam, aber nicht aggressiv)
  • Keep-Alive-Logik verhindert unbeabsichtigtes Abschalten des Outputs
  • Stabiler Betrieb auch nahe 0 W Netzbezug

:money_bag: Preislogik & Preisplanung

  • Überarbeitung der kompletten Preis-Vorplanung
  • Unterstützung unterschiedlicher Preisformate:
    • Tibber (15-Minuten-Slots)
    • EPEX Spot (stündliche Slots mit Start- und Endzeit)
  • Zeitfenster-basierte Entscheidungslogik statt reiner Zeitstempel
  • Fix für Ladefenster, die erkannt wurden, aber nicht ausgelöst haben
  • Saubere Trennung zwischen:
    • geplanter Ladung
    • preisbasierter Entladung
    • sehr-teurer Zwangsentladung

:counterclockwise_arrows_button: Durchschnittlicher Ladepreis (Akku)

  • Korrekte Berechnung des Ø-Ladepreises für jede Netzladung
  • Reset des Ladepreises beim Erreichen von SoC-Minimum (neuer Trade-Zyklus)
  • Keine unknown / None-Zustände mehr → immer numerisch stabil
  • Fix für Fälle, in denen nach Neustarts nicht weitergerechnet wurde
  • Verlässliche Grundlage für Entlade- und Gewinnberechnung

:brain: Entscheidungen & Transparenz

  • Klare Priorisierung der Entscheidungslogik
  • Kein automatisches Umschalten von Entladen → Laden mehr
  • Zuverlässige SoC-Min-Absicherung
  • Konsistente und nachvollziehbare decision_reason
  • Erweiterte Debug-Informationen im details-Attribut

:globe_showing_europe_africa: Übersetzungen

  • Korrekte Übersetzungen für:
    • Konfigurationsdialog (Config-Flow)
    • Select-Optionen
    • Sensor-States
  • Deutsch, Englisch und Französisch verfügbar
    (Hinweis: ggf. Frontend-Cache von Home Assistant neu laden)

:folded_hands: Danksagung

Ein besonderer Dank geht an schreibsi mit seinem Zendure SF800Pro und
EPEX-Spot-Preisquelle.

Durch reale Tests unter deutlich anderen Rahmenbedingungen als mit Tibber
konnten zahlreiche Randfälle, Timing-Probleme und Regelungsfehler entdeckt
und behoben werden, die sonst unentdeckt geblieben wären.

Diese Version ist zu einem großen Teil das Ergebnis dieses praxisnahen
Feedbacks. Vielen Dank für die Geduld, die Logs und die intensive Zusammenarbeit!


:white_check_mark: Fazit

Version 1.4.5 ist ein stabiler, ausgereifter Release mit:

  • zuverlässiger Regelung
  • sauberer Preisplanung
  • nachvollziehbaren Entscheidungen
  • und robuster Sensor-Integration

Empfohlenes Update für alle Nutzer.

2 „Gefällt mir“

Wichtige Änderung: Umbenennung der Integration und einmalige Neueinrichtung erforderlich

Hallo zusammen,

mit der aktuellen V1.5.0-Beta6 wurde die Integration aus technischen und organisatorischen Gründen umbenannt und trägt nun den neuen Namen Battery SmartFlow AI. Hintergrund dieser Änderung ist die notwendige Marken- und Registrierungsanpassung (u. a. für die Aufnahme in das Home-Assistant-Brands-Repository), damit die Integration langfristig problemlos veröffentlicht und weiterentwickelt werden kann.

Durch diese Namens- und Domain-Umstellung ist leider einmalig eine Neueinrichtung der Integration erforderlich. Eine automatische Übernahme der bestehenden Konfiguration war in diesem speziellen Umstellungsschritt technisch nicht zuverlässig möglich. Ich weiß, dass dies zusätzlichen Aufwand bedeutet, und möchte mich dafür ausdrücklich entschuldigen.

Erforderliche Schritte nach dem Update:

  1. Neue Integration Battery SmartFlow AI hinzufügen.
  2. Einrichtung wie gewohnt durchführen (Geräte/Verbindungen konfigurieren).
  3. Alle Regler und Parameter wieder auf die gewünschten Werte einstellen.
  4. Anschließend die alte Integration entfernen.

Nach dieser einmaligen Umstellung funktionieren zukünftige Updates wieder ganz normal ohne Neueinrichtung.

Vielen Dank für euer Verständnis, eure Geduld und die vielen Rückmeldungen und Tests, die helfen, die Integration weiter zu verbessern!

Hier der neue Repo-Link, der alte funktioniert aber auch noch etwas weiter: PalmManiac/battery-smartflow-ai: A custom integration for the regulation and control of additional battery systems for PV systems.

Ich hoffe, ich habe alle noch vorhandenen Fehler erwischt, denn wegen der Namensänderung mußte ich die V1.5.0 heraus bringen. Ignoriert die falsche Anzeige in der GUI, dort steht noch V1.5.0-Beta8. Ich habe im Eifer des Gefechtes vergessen das ab zu ändern. :wink: Hier die Release-Notes:

:battery: Battery SmartFlow AI V1.5.0

Dieses Release markiert den offiziellen Übergang zur umbenannten Integration Battery SmartFlow AI
und enthält alle Verbesserungen aus der 1.5.0 Beta-Phase.


:warning: WICHTIG – Breaking Change

:repeat_button: Umbenennung der Integration

Die Integration wurde von
Zendure SmartFlow AI
zu
Battery SmartFlow AI
umbenannt.

:red_exclamation_mark: Dadurch ist eine Neuinstallation erforderlich

Nach dem Update bitte:

  1. Neue Integration Battery SmartFlow AI hinzufügen
  2. Konfiguration komplett neu durchführen
  3. Regler / Parameter neu einstellen
  4. Alte Integration entfernen

Leider kann Home Assistant Domains nicht automatisch migrieren.
Die Umbenennung war notwendig für:

  • saubere HACS-Validierung
  • konsistente Domain-Struktur
  • zukünftige Geräteerweiterungen
  • langfristige Wartbarkeit

Vielen Dank für euer Verständnis :folded_hands:


:rocket: Neu in 1.5.0

:small_blue_diamond: Dynamische Geräteprofil-Architektur

  • Geräteprofile werden nun automatisch aus device_profiles.py geladen
  • Config Flow generiert Auswahlmenü dynamisch
  • Neue Modelle können ohne ConfigFlow-Anpassung ergänzt werden
  • Aktuelle Profile:
    • SF800Pro
    • SF2400AC

:small_blue_diamond: Profilbasierte Hard-Limits

  • Profile können nun:
    • MAX_INPUT_W
    • MAX_OUTPUT_W
      definieren
  • User-Werte werden automatisch begrenzt

:high_voltage: Verbesserungen

:small_blue_diamond: Vollständig überarbeitete Preisplanung

  • Valley-basierte Tal-Erkennung (nicht mehr „letzter günstiger Slot“)
  • Toleranzfenster für günstige Phasen
  • Sofortladung bei Tagesminimum
  • Schutz vor Peak-Erkennung in der Vergangenheit
  • Tibber-Slots ohne end_time werden korrekt verarbeitet
  • Anti-Flutter-Latch eingeführt
  • Planung wird sauber gelockt bis Ziel-SoC erreicht

:small_blue_diamond: Very-Expensive-Logik gehärtet

  • Entladung nur bei ausreichendem SoC-Puffer
  • Reserve = SoC-Min + 20%
  • Discharge nur im Zeitfenster vor Peak
  • Kein vorzeitiges Abwürgen der Ladung mehr

:small_blue_diamond: Netzgeführtes Laden (PV-Überschuss)

  • Ladeleistung folgt nun realer Netzbilanz
  • Deutlich reduzierte Rest-Einspeisung
  • Kein statisches PV-Hauslast-Modell mehr
  • Verhalten entspricht manuellem Laden

:small_blue_diamond: Price-Based-Discharge stabilisiert

  • Entladung nur wenn realer Preisvorteil besteht
  • Zyklus-Reset bei Erreichen von SoC-Min
  • Profit-Berechnung robuster

:small_blue_diamond: State-Maschine verbessert

  • Harte Synchronisation mit Hardware (AC-Modus gewinnt immer)
  • OUTPUT < Mindestleistung = Idle
  • Kein ungewolltes Flippen zwischen Charge / Discharge
  • Soft-Stop bei Balance-Zone

:small_blue_diamond: Season Detection eingeführt

  • Automatische Sommer/Winter-Erkennung
  • Anti-Flip-Zählerlogik
  • Langsame Anpassung statt hektischer Wechsel

:hammer_and_wrench: Stabilität & Fixes

  • Defensive Initialisierung von Peak-Variablen
  • Schutz vor NameError in Planning
  • Grid-Datenvalidierung verbessert
  • Latch wird automatisch aufgehoben, sobald Peak beginnt
  • SoC-Limit (BMS) wird strikt respektiert
  • Fault-Level Status integriert
  • Verbesserte Transparenz-Sensoren
  • Persistenz robuster gemacht

:bar_chart: Erweiterte Transparenz

Neue/erweiterte Sensorzustände:

  • next_planned_action
  • next_planned_action_time
  • planning_status
  • planning_reason
  • planning_target_soc
  • device_profile
  • season_mode
  • fault_level_status

:brain: Architektur-Vorbereitung für 1.6.0

  • Klare Prioritätshierarchie (Emergency > Planning > Price > State Machine)
  • Planning-Lock Mechanismus
  • Erweiterte Persistenzstruktur
  • Saubere Trennung von Profil-Logik und Regelungslogik

:speech_balloon: Danke an alle Tester

Die 1.5.0 ist maßgeblich durch euer Feedback entstanden.

Besonders getestet wurden:

  • SF800Pro
  • Ladeplanung mit kompletten Ladefenstern
  • Very-Expensive-Discharge
  • PV-Nulleinspeisung
  • Preisgesteuerte Entladung

Diese Version bildet die stabile Basis für die kommende 1.6.x Generation.

:rocket: Release: Battery SmartFlow AI v2.0.0 ist live!

Nach vielen Iterationen, Beta-Tests und Optimierungen ist es endlich soweit:

Battery SmartFlow AI v2.0.0 ist veröffentlicht.

Diese Version ist kein kleines Update –
es ist ein vollständiges Architektur-Upgrade.


:fire: Was ist neu?

  • :white_check_mark: Adaptive Peak-Erkennung (dynamisch & einstellbar)
  • :white_check_mark: Geräteprofile (SF800Pro, SF2400AC, SF1600AC+)
  • :white_check_mark: Netzgeführte Delta-Regelung nahe 0 W
  • :white_check_mark: Transparente Entscheidungs-Sensoren
  • :white_check_mark: Echtzeit-Gewinnberechnung
  • :white_check_mark: Hard-Sync mit der Zendure-Hardware
  • :white_check_mark: Stabile Prioritätenhierarchie
  • :white_check_mark: Anti-Flutter-Mechanismen

Zum ersten Mal funktioniert:

  • Laden im optimalen Ladefenster
  • Entladen zur echten Preisspitze
  • Dynamische Leistungsregelung
  • Wirtschaftliche Bewertung

automatisch und sauber.


:warning: Wichtiger Hinweis (Breaking Change)

Die Integration wurde umbenannt:

Von: Zendure SmartFlow AI
Zu: Battery SmartFlow AI

Dadurch ist eine Neuinstallation erforderlich.

Update-Vorgehen:

  1. Altes Repository in HACS entfernen
  2. Home Assistant neu starten
  3. Neues Repository hinzufügen:
    GitHub - PalmManiac/battery-smartflow-ai: A custom integration for the regulation and control of additional battery systems for PV systems.
  4. Integration neu installieren
  5. Konfiguration neu durchführen

Zusätzlich können nach dem Upgrade alte Sensoren in HA sichtbar bleiben – diese bitte manuell entfernen.


:blue_book: Neue vollständige Anleitung

Die Dokumentation wurde komplett neu aufgebaut und erklärt:

  • Installation
  • Konfiguration
  • Alle Sensoren & Steuerelemente
  • Adaptive Peak-Logik
  • Wirtschaftlichkeitsberechnung
  • Technischer Hintergrund
  • Best Practices

:backhand_index_pointing_right: Hier geht’s zur Anleitung:


:folded_hands: Danke an alle Tester

V2 ist das Ergebnis vieler Tests, Rückmeldungen und Feinschliffe.

Ohne euch wäre diese Version nicht möglich gewesen.


Battery SmartFlow AI v2.0.0
Erklärbar. Stabil. Wirtschaftlich.

Feedback wie immer willkommen :rocket:

:rocket: Battery SmartFlow AI 3.0 ist da!

Nach vielen Tests und mehreren Beta-Versionen ist es endlich soweit:
Battery SmartFlow AI Version 3.0 ist ab sofort verfügbar.

Diese Version bringt eine der größten Weiterentwicklungen der Integration seit Beginn des Projekts und verbessert sowohl die Stabilität der Regelung als auch die Intelligenz der Preisstrategie deutlich.


:high_voltage: Was ist neu in Version 3.0?

Version 3.0 bringt mehrere wichtige Verbesserungen und neue Funktionen.

Dynamische Peak- und Valley-Erkennung

Die Integration analysiert die Strompreise nun noch intelligenter.

Neben der bekannten Peak-Erkennung (teure Preisphasen) gibt es jetzt auch eine dynamische Tal-Erkennung (Valley Detection).

Damit erkennt die AI automatisch:

  • besonders teure Preisphasen zum Entladen
  • besonders günstige Preisphasen zum Laden

Die Schwellen werden dabei dynamisch aus dem durchschnittlichen Tagespreis berechnet.


Verbesserte Ladeplanung

Die AI analysiert zukünftige Strompreise und plant das Laden der Batterie vorausschauend.

Dabei wird unter anderem berücksichtigt:

  • kommende Preis-Peaks
  • Batteriekapazität
  • aktuelle Ladeleistung
  • bereits verfügbare Energie im Akku

Dadurch wird verhindert, dass die Batterie unnötig oder zu teuer nachgeladen wird.


Stabilere Leistungsregelung

Ein wichtiger Fokus der V3 war die Stabilität der Regelung.

Die interne Delta-Regelung wurde überarbeitet, wodurch:

  • das bekannte „Sägezahnverhalten“ deutlich reduziert wird
  • die Leistungsregelung stabiler arbeitet
  • alle Modi (Automatik, Sommer, Winter, Manuell) die gleiche Regeltechnik verwenden

Das sorgt für ein deutlich ruhigeres Verhalten der Batterie.


Verbesserte Hauslast-Berechnung

Die Berechnung der Hauslast wurde komplett überarbeitet.

Jetzt werden korrekt berücksichtigt:

  • PV-Leistung
  • Batterie-Ladung und Entladung
  • Netzbezug
  • Netzeinspeisung

Die Werte stimmen damit deutlich besser mit den realen Energieflüssen im Home Assistant Energy Dashboard überein.


Mehr Transparenz durch neue Diagnose-Sensoren

Version 3.0 erweitert die Integration um zusätzliche Sensoren, die das Verhalten der AI verständlicher machen.

Neue Sensoren zeigen unter anderem:

  • durchschnittlichen Tagespreis
  • aktuelle Peak-Schwelle
  • aktuelle Tal-Schwelle
  • interne Statusinformationen der AI

Damit lässt sich deutlich besser nachvollziehen, warum die AI gerade lädt, entlädt oder wartet.


:open_book: Neue und komplett überarbeitete Anleitung

Mit Version 3.0 wurde auch die Dokumentation vollständig überarbeitet.

Die neue Anleitung enthält unter anderem:

  • eine deutlich verbesserte Installationsanleitung
  • Erklärungen zur AI-Logik
  • Beschreibung der Sensoren und Diagnosewerte
  • detaillierte Erklärung der Geräteprofile

Damit sollte der Einstieg und das Verständnis der Integration deutlich einfacher werden.


:battery: Was macht Battery SmartFlow AI?

Battery SmartFlow AI ist eine intelligente Steuerung für Zendure SolarFlow Systeme in Home Assistant.

Die Integration kombiniert:

  • PV-Erzeugung
  • Hauslast
  • Batteriestand
  • dynamische Strompreise

und trifft daraus automatisch Entscheidungen, wann die Batterie laden oder entladen soll.

Ziel ist eine möglichst wirtschaftliche und stabile Nutzung der Batterie.


:test_tube: Feedback willkommen

Wie immer freue ich mich über Feedback, Erfahrungen und Verbesserungsvorschläge.

Wenn ihr Fragen habt oder Probleme entdeckt, meldet euch gerne.


Vielen Dank an alle Tester und Nutzer für das Feedback während der Beta-Phase! :folded_hands:

2 „Gefällt mir“