Logikprüfung: Kombination Dynamischer Strompreis/Spotpreis, PV und Batterie

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • OptimalNothing
    Dumb Home'r
    • 15.04.2024
    • 15

    #1

    Logikprüfung: Kombination Dynamischer Strompreis/Spotpreis, PV und Batterie

    Hallo zusammen,

    nachdem ich gerade aus Versehen begonnen habe, einen anderen Thread (https://www.loxforum.com/forum/germa...-programmieren) zu hijacken, starte ich hier einen neuen.

    Ich bin ein "Hobby"-Skripter und beruflich mit PowerShell & Co. unterwegs, wo ich mehrere tausend Objekte verwalte und automatisiere. Aber die grafische Programmierung in Loxone bringt mich echt an meine Grenzen. 😅


    Meine Herausforderung:
    Ich möchte folgende Komponenten optimal miteinander kombinieren:
    • Dynamischer Strompreis (Tibber)
    • PV-Anlage (Sungrow SH10RT)
    • Batterie (Sungrow SH10RT)
    • Großverbraucher: LWWP (Tecalor THZ 5.5 Eco via SG Web Modbus) & Wallbox (Warp 3)

    Es gibt bereits Lösungen über Zwangsladung, die ich aber nur als letzte Option sehe. Meiner Meinung nach ist es wirtschaftlicher, die Batterie gezielt zu pausieren, da die Kosten/Abnutzung der Batterie selbst in Kombination des Netzbezugs sonst schnell den Kosteneffekt übersteigen. Korrigiert mich gerne wenn ich den falschen Ansatz hier habe.


    Zielsetzung:
    Ich möchte so viel wie möglich direkt im MiniServer abbilden, aus folgenden Gründen:
    • Klare Trennung der Zuständigkeiten
    • Einfacheres Troubleshooting
    • Reduziertes Ausfallrisiko
    Einzige Ausnahme: Zulieferung mittels LoxBerry wegen MQTT und Solcast


    Warum dieser Post?
    1. Schwarmintelligenz: Habe ich irgendwo einen Denkfehler? Was sind sinnvolle Erweiterungen?
    2. Umsetzungsunterstützung: Ich habe oft Probleme, von klassischer Wenn-Dann-Logik auf SPS-Denken umzusteigen.
    3. Community-Gedanke: Am Ende soll das ein HowTo werden, da es zu diesem Thema kaum nur vereinzelt Lösungen gibt, es aber eigentlich doch eine gute Anzahl an Haushalten betreffen müsste (?). Es geht nicht nur ums Geld, eine gute Steuerung kann auch helfen Netzschwankungen zu reduzieren und den Eigenverbrauch sinnvoll zu optimieren.
  • GeoPod
    LoxBus Spammer
    • 20.01.2021
    • 401

    #2
    Hallo,

    wie bereits geschrieben, bin ich gerne dabei. Bei mir läuft auch Loxberry für PV Prognose usw.

    Bei uns läuft ein SMA System mit BYD Batterie. Manuell kann ich dies Laden, Entladen und Stoppen.

    Kommentar


    • OptimalNothing
      OptimalNothing kommentierte
      Kommentar bearbeiten
      D.h. statt in meinem Fall dass ich mit "Max. Discharging Power" = 100 oder 5000 arbeite, könntest du auch via Modbus den Value Stop senden, oder? Dann passt es auch für dich
  • OptimalNothing
    Dumb Home'r
    • 15.04.2024
    • 15

    #3
    Entscheidungsablauf

    1. Zielsetzung
    • Keine Zwangsladung der Batterie, außer bei großer Preisdifferenz.
    • Max. Discharging Power, wenn günstige Netzbezugsstunden genutzt werden sollen (Blockierung der Entladung).
    • Batterie erst dann freigeben, wenn der Netzstrom relativ teuer wird.
    • Entscheidungsfindung basiert auf einer Vorschauzeit von 24 Stunden, mit Fokus auf die nächsten 6 Stunden für kurzfristige Anpassungen.
    • Optimierung der Entladezeiten basierend auf Haushaltsnutzung und dynamischen Strompreisen:
      • Gezielte Entladung zu den teuersten Stunden des Tages, statt fester Zeiten.
      • Verwendung des Loxone Spotpreis-Optimierers zur Bestimmung der teuersten Stunden.
      • Berücksichtigung des erwarteten Verbrauchs und der PV-Prognose für die nächsten 6 Stunden.
      • Falls PV-Überschuss in den nächsten Stunden erwartet wird, wird die Batterie nicht entladen.
      • Falls der Verbrauch niedrig ist und es sich nicht lohnt zu entladen, bleibt die Batterie geladen.
      • Stündliche Neuberechnung der Entladeentscheidung** durch einen Trigger-Impuls.

    2. Eingaben (Inputs)
    • SOC der Batterie .
    • Spotpreis-Optimierer für 6h-Analyse
    • PV-Prognose (Solcast über LoxBerry, Vorschau 6h).
    • Verbrauchsprognose (Durchschnitt der letzten Woche, Vorschau 6h).

    3. Geplante Erweiterungen des Entscheidungsablaufs

    Voraussichtlichen Stromverbrauch ermitteln
    • Berechnung des erwarteten Verbrauchs basierend auf den letzten 7 Tagen.
    • Möglichkeit zur Exklusion der Wallbox, da diese den Verbrauch stark beeinflussen kann.

    Voraussichtlichen Stromverbrauch mit Batterie und PV-Prognose vergleichen
    • Falls der Verbrauch größer als die kombinierte Leistung von Batterie + PV-Prognose** ist, wird Netzstrom benötigt.
    • Dynamische Anpassung, um sicherzustellen, dass nur entladen wird, wenn der Verbrauch nicht anderweitig gedeckt wird.

    Zwangsladung bei großer Preisdifferenz
    • falls der erwartete Verbrauch größer als Batterie + PV-Erzeugung ist UND die Preisdifferenz zwischen teuerstem und günstigstem Netzstrom groß ist, dann Batterie zwangsladen.
    • Berechnung der wirtschaftlich sinnvollsten Ladezeit durch den Spotpreis-Optimierer.
    • Vermeidung von unnötigem Laden bei geringer Preisdifferenz.

    4. Entscheidungslogik für Batterie-Entladung
    Die Logik wird in mehreren Status- und Vergleichsbausteinen umgesetzt.
    Eingänge:
    • `I1` SOC der Batterie
    • `I2` Relativer Strompreis
    • `I3` PV-Prognose für die nächsten 6 Stunden
    • `I4 Durchschnittlicher Verbrauch für die nächsten 6 Stunden

    Bedingungen & Entscheidungen:
    1. - Falls `SOC < 5 %` → Batterie leer → Modbus-Wert = 100 (keine Entladung möglich).
    2. - Falls `relative_price < 0.5` UND `SOC > 30 %` → Entladung blockieren (`Max. Discharging Power = 100`).
    3. - Falls `relative_price >= 0.5` UND `SOC > 30` UND `I4 > I3` → **Volle Entladung aktivieren (`Max. Discharging Power = 5000`).
    4. - Falls `SOC > 85` UND `I3 > I4` → Teilentladung aktivieren (`Max. Discharging Power = 3000`).
    5. - Falls `relative_price >= 0.5` UND `SOC > 30` UND `I4 < I3` → **Keine Entladung (günstiger Netzstrom vorhanden).
    6. - Falls `I4 > (SOC + I3)` UND `Max - Min > 0.2` → Zwangsladung aktivieren (`Max. Charging Power`).
    Zuletzt geändert von OptimalNothing; In den letzten 2 Wochen. Grund: Entfernung von Typos

    Kommentar

    • OptimalNothing
      Dumb Home'r
      • 15.04.2024
      • 15

      #4
      Aktueller Stand:

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 45,7 KB ID: 455267
      Angehängte Dateien

      Kommentar


      • OptimalNothing
        OptimalNothing kommentierte
        Kommentar bearbeiten
        Dann muss eins Loxberry Plugin her.
        Es gibt 2 Plugins die nach dem schnellen dichten in Frage kommen, die sich jedoch teilweise überschneiden. @hismastersvoice/Prof.Mobilux: ich frage ganz frech nach, verzeiht bitte wenn es grob ist. plant ihr die Plugins unabhängig von einander weiter zu pflegen bzw. Würde jemand von euch dieses Vorhaben hier mit unterstützen?

      • hismastersvoice
        hismastersvoice kommentierte
        Kommentar bearbeiten
        Dann muss eins Loxberry Plugin her.
        Steht dir ja frei eines zu bauen

        Es gibt 2 Plugins die nach dem schnellen dichten in Frage kommen, die sich jedoch teilweise überschneiden. @hismastersvoice/Prof.Mobilux: ich frage ganz frech nach, verzeiht bitte wenn es grob ist. plant ihr die Plugins unabhängig von einander weiter zu pflegen bzw. Würde jemand von euch dieses Vorhaben hier mit unterstützen?
        Welche Plugins wären das denn?

        Da ich absolut kein Freund von Batterie aus dem Netz laden bin, werde ich sicher keine Zeit verwenden da was zu machen.

      • OptimalNothing
        OptimalNothing kommentierte
        Kommentar bearbeiten
        Richtig, ich eben auch nicht. Ich möchte die Batterielieferung pausieren wenn z.B. in der Nacht der Strom günstig ist und verwenden wenn das Stromnetz gerade unter Anspannung steht.

        Ich bin gerade schon dabei es mit Tibber 2 MQTT zu realisieren
        Zuletzt geändert von OptimalNothing; In den letzten 2 Wochen. Grund: Ergänzung
    • OptimalNothing
      Dumb Home'r
      • 15.04.2024
      • 15

      #5
      drückt mir die Daumen dass ich mich in meiner Logik nicht vertan habe :O

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: image.png Ansichten: 0 Größe: 143,3 KB ID: 455303


      Erstellung Logik für den Voraussichtlichen Energiebedarf der jeweiligen 6 Stunden Periode

      1. Zielsetzung
      • Berechnung des verbleibenden Stromverbrauchs innerhalb eines sechs-Stunden-Zeitblocks
      • Verwendung der Mittelwerte der letzten sieben Tage zur Prognose
      • Subtraktion des bereits verbrauchten Stroms, um eine präzisere Schätzung zu erhalten
      • Stündliche Aktualisierung innerhalb des laufenden Blocks
      2. Eingangsbausteine
      • Modbus-Datenpunkt für Stromverbrauch heute
        • Erfasst den aktuellen kumulierten Tagesverbrauch direkt aus dem Wechselrichter
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 91
Größe: 8,7 KB
ID: 455306
      • Merker für historische Mittelwerte
        • Energie Mittlerer Stromverbrauch 0-6 Uhr
        • Energie Mittlerer Stromverbrauch 6-12 Uhr
        • Energie Mittlerer Stromverbrauch 12-18 Uhr
        • Energie Mittlerer Stromverbrauch 18-0 Uhr
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 94
Größe: 90,1 KB
ID: 455307
      3. Impulssteuerung
      • PulseAt-Bausteine für sechs-Stunden-Impulse
        • Impuls um 06:00 Uhr
        • Impuls um 12:00 Uhr
        • Impuls um 18:00 Uhr
        • Impuls um 23:59 Uhr (da 0:00 Uhr Reset der Tageswerte)
      • Flankengetriggertes Wischrelais​
        • Aktiviert durch sechs-Stunden-Impulse
        • Wiederholt Berechnung alle 60 Minuten innerhalb des laufenden Blocks
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 91
Größe: 9,8 KB
ID: 455304
      4. Mittelwertberechnung (Credits hierfür gehen an schurli, lohnt sich doch die Konfig zu exportieren)
      • Gleitender Mittelwert-Baustein (Avg)
        • Berechnet Durchschnittsverbrauch der letzten sieben Tage für jeden sechs-Stunden-Block
        • Ergebnisse werden in Merker-Bausteinen gespeichert
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 92
Größe: 13,0 KB
ID: 455305
      5. Mathematische Berechnungen
      • Subtrahierer/Formelbausteine für die Berechnung des erwarteten Restverbrauchs
        • 00-06 Uhr:
          • Erwarteter Restverbrauch = Energie Mittlerer Stromverbrauch 0-6 Uhr - Stromverbrauch heute
        • 06-12 Uhr:
          • Erwarteter Restverbrauch = Energie Mittlerer Stromverbrauch 6-12 Uhr - (Stromverbrauch heute - Energie Mittlerer Stromverbrauch 0-6 Uhr)
        • 12-18 Uhr:
          • Erwarteter Restverbrauch = Energie Mittlerer Stromverbrauch 12-18 Uhr - (Stromverbrauch heute - (Energie Mittlerer Stromverbrauch 0-6 Uhr + Energie Mittlerer Stromverbrauch 6-12 Uhr))
        • 18-00 Uhr:
          • Erwarteter Restverbrauch = Energie Mittlerer Stromverbrauch 18-0 Uhr - (Stromverbrauch heute - (Energie Mittlerer Stromverbrauch 0-6 Uhr + Energie Mittlerer Stromverbrauch 6-12 Uhr + Energie Mittlerer Stromverbrauch 12-18 Uhr))
      6. Speicherung und Ausgabe
      • Merker für die Mittlere Stromverbrauche 7 Tage in die Vergangenheit
        • Erwarteter Restverbrauch 0-6 Uhr
        • Erwarteter Restverbrauch 6-12 Uhr
        • Erwarteter Restverbrauch 12-18 Uhr
        • Erwarteter Restverbrauch 18-0 Uhr
      • Merker für den Energie Verbleibender Verbrauch fuer 6H Periode, stündlich neu berechnet bis Ende der 6 Stunden Periode
      7. Ablauf der Berechnungslogik
      • Stromverbrauch heute wird aus dem Modbus-Datenpunkt des Wechselrichters gelesen
      • Mittelwerte der letzten sieben Tage für den aktuellen sechs-Stunden-Zeitraum werden aus den Merkern abgerufen
      • Impulsgeber startet Berechnung für neuen Zeitblock
      • Flankengetriggertes Wischrelais löst stündliche Aktualisierung aus
      • Subtrahierer/Formeln berechnen bereits verbrauchte Energie innerhalb des Blocks
      • Berechnete Werte werden in einem Merkern gespeichert, der später für die Batterie Entladung verwendet wird
      Zuletzt geändert von OptimalNothing; In den letzten 2 Wochen. Grund: Formatierung und Bilder

      Kommentar

      • GeoPod
        LoxBus Spammer
        • 20.01.2021
        • 401

        #6
        OptimalNothing Bist du weiter gekommen? Kann man dich unterstützen?

        Kommentar


        • OptimalNothing
          OptimalNothing kommentierte
          Kommentar bearbeiten
          Leider nein, ich bin krankheitsbedingt ausgefallen und versuche gerade ein bisschen in der Arbeit nachzuholen. Hilft es was wenn ich schon mal exportiere was ich habe?

        • GeoPod
          GeoPod kommentierte
          Kommentar bearbeiten
          Klar, ich schaue es mir gerne an.

          Du meintest letzten, dass noch etwas mit der Preisberechnung nicht stimmt.

        • SPS-Guru
          SPS-Guru kommentierte
          Kommentar bearbeiten
          Wenn die Schaltung immer noch so ist wie in Post #5 dann ist da meiner Meinung nach
          noch ein Fehler in der Erfassung des Stromverbrauch 12-18 Uhr und des Stromverbrauch 18-00 Uhr.
          Ich denke bei :
          Stromverbrauch 12-18 Uhr muss noch der Stromverbrauch 00-06 Uhr abgezogen werden und nicht nur jener von 06-12 Uhr
          Stromverbrauch 18-00 Uhr muss der Stromverbrauch 00-06 Uhr, Stromverbrauch 06-12 Uhr und Stromverbrauch 12-18 Uhr abgezogen werden.

          Aber wie gesagt ich weiss ja nicht ob die Schaltung immer noch so wie bei #5 besteht.
      Lädt...