Rule zur Berechnung von Tagesverbrauch

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

B0LT
Beiträge: 11
Registriert: 19. Dez 2023 18:49
Answers: 0

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von B0LT »

udo1toni hat geschrieben: 2. Jan 2024 06:02 Ich lese die entsprechenden Daten aus meiner Fronius aus (d.h. ich berechne da gar nichts). Evtl. trifft das auf die Anderen ebenfalls zu :)
Ich habe einen Fronius Symo GEN24. Dieser stellt eben keine Tageserträge, Jahesbeträge selbst bereit, nur den Totalwert. Ebenfalls hat er keine Archiv Daten wo man drauf zugreifen kann.
Ich Nutze selbst die API um zu schauen welche Daten er wo bereit stellt. In der Dokumentation von Fronius steht eben auch drin das der Gen24 eben nicht alle daten via API preis geben kann.

Deswegen auch mein Gedanke ob man den Ertrag selbst berechnen kann, oder ob es dazu noch andere Möglichkeiten gibt.

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von udo1toni »

Ja, aber dann reicht es ja, die Total Produktion zu persistieren. Anschließend kannst Du für den gesamten beobachteten Zeitraum beliebige Zeiträume gezielt abfragen, z.B. das Delta seit Jahresbeginn, seit Monatserstem, seit Wochenanfang, seit 7 Tagen, seit Mitternacht., aber auch z.B. vom Monatsersten bis Monatsletzten des Vormonats.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

B0LT
Beiträge: 11
Registriert: 19. Dez 2023 18:49
Answers: 0

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von B0LT »

leider reicht das nicht, weil die Werte total falsch sind. Den Total Wert persistier ich und hab mir mit der Rule von der ersten Seite die Differenz raus rechnen lassen. Aber das stimmt hinten und vor nicht mit der PV Produktion. Das einzige was ungefähr hinkommt ist der Eigenverbrauch.

Kurz und knapp, er rechnet mit den Wert anscheinend nicht nur das was man über den Tag produziert hat, sondern auch das was am Abend dann aus den speicher kommt.
Interessant wär für mich eben die reine PV Produktion und dann was in und aus dem Speicher geht.

Geht aber anscheinend nicht über die API, da müsste man auf den Modbus zugreifen und dort die Werte abgreifen

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von udo1toni »

Nein, die Fronius sollte da schon den korrekten Wert liefern, die Produktion und der Eigenanteil sind ja zwei im Zweifelsfall steuerlich relevante Werte, wenn da Mist raus käme, könnte das großen Ärger auch für den Hersteller bedeuten.
Was Du hingegen berechnest, kann komplett falsch sein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von violine21 »

B0LT hat geschrieben: 5. Jan 2024 20:23 Geht aber anscheinend nicht über die API, da müsste man auf den Modbus zugreifen und dort die Werte abgreifen
Hallo,
du hast das Fronius-Binding installiert, schau Dir alle Channels, die angelegt werden an.
Dort sollte auch für Dich das Entsprechende dabei sein. Das einzige, was bei mir fehlt, ist tatsächlich auch hier der Tages- und der jahreswert.
Ich schreibe den Total-Energy-Wert jede Nacht um 0:00 Uhr in eine Datenbank. Daraus errechne ich dann die entsprechende Tageserzeugung.
Ich habe darüber einen Symo und einen Symo-Gen eingebunden, das funktioniert ganz easy und pass mit den Werten im Web-Portal überein.

Parallel dazu lasse ich mir vom Web-Portal monatlich für jeden Umrichter eine detailierte csv-Datei automatisch mailen.
Damit habe ich im Fall der Fälle die passenden Daten für Finanzamt und Netzbetreiber parat (falls mal jemand fragt ;) )

B0LT
Beiträge: 11
Registriert: 19. Dez 2023 18:49
Answers: 0

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von B0LT »

udo1toni hat geschrieben: 5. Jan 2024 23:57 Nein, die Fronius sollte da schon den korrekten Wert liefern...
violine21 hat geschrieben: 6. Jan 2024 19:45 Dort sollte auch für Dich das Entsprechende dabei sein. Das einzige, was bei mir fehlt, ist tatsächlich auch hier der Tages- und der jahreswert.
Ich schreibe den Total-Energy-Wert jede Nacht um 0:00 Uhr in eine Datenbank. Daraus errechne ich dann die entsprechende Tageserzeugung.
Ich habe darüber einen Symo und einen Symo-Gen eingebunden, das funktioniert ganz easy und pass mit den Werten im Web-Portal überein.
Hier mal als vergleich der Total Werte zwischen Solar.Web und der API:
Bild
Bild

und so setzt sich dann auch die errechneten Werte fort.
Weil anscheinend ist mit "total energy" die komplette AC seite gemeint, denn mein zähler für den tagesverbauch geht auch nach oben wenn Enegie aus dem Speicher kommt.
Ich wollte mir eigentlich nur die reine PV Produktion (DC Seite) rausrechnen lassen inkusive was bzw was vom Speicher kommt.

Und so sieht das wieder im Vergleich aus wenn ich mir das über den "total Energy" den 24h Wert berechne lasse. Eben wieder Solwar.Web vs berechnung:
Bild
Bild


Anscheinend liefert der Wechselrichter die Rohdaten in anderer Form an das Solwar.Web wie über die API. Oder es gibt eine berechnung um die Rohdaten richtig aufzubereiten.


udo1toni hat geschrieben: 5. Jan 2024 23:57 ... im Zweifelsfall steuerlich relevante Werte...
violine21 hat geschrieben: 6. Jan 2024 19:45 Damit habe ich im Fall der Fälle die passenden Daten für Finanzamt und Netzbetreiber parat (falls mal jemand fragt ;) )
Vollkommen uninteressant für mich. Da ich weit unter den den maximal kWp für Private, und deutlich unter der Freigrenze bin für das überschuss einspeisen (Österreich).

Benutzeravatar
udo1toni
Beiträge: 13989
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von udo1toni »

B0LT hat geschrieben: 9. Jan 2024 22:40Vollkommen uninteressant für mich.
Das mag sein, aber die Wechselrichter werden ja nicht exclusiv für Dich gebaut, also muss der Hersteller darauf achten, dass er keinen Schmuh treibt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von violine21 »

B0LT hat geschrieben: 9. Jan 2024 22:40 Ich wollte mir eigentlich nur die reine PV Produktion (DC Seite) rausrechnen lassen inkusive was bzw was vom Speicher kommt.
So wie ich dich verstehe, möchtest du nur die von der Anlage erzeugten kWh wissen.?
Ich habe an meinem SymoGen leider keine Batterie, wo ich schauen könnte aber die Channels, die das Binding bereitstellt (nicht die API),
bieten jede Menge Daten. Wenn ich diesen Thread durchlese, hast du doch eigentlich schon alle Daten, die du für die Nachbildung des
Solar-Web-Portals benötigst.
Sollte dort nichts dabei sein, könntest du zur Not noch den TotalEnergy-Wert nehmen und diesen mittels einer Rule entsprechend aufbereiten.
Ist bei diesen Channels nichts passendes dabei?

Code: Alles auswählen

Number                     FroniusSchuppenInverterdatadevicestatusstatuscode   "Status code"                               {channel="fronius:powerinverter:22f826fb77:0919368e5f:inverterdatadevicestatusstatuscode"}
Number:Power               FroniusSchuppenPowerflowchannelpgrid                "Grid power"                                {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowchannelpgrid"}
Number:Power               FroniusSchuppenPowerflowchannelpload                "Load power"                                {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowchannelpload"}
Number:Power               FroniusSchuppenPowerflowchannelpakku                "Charge / discharge of battery"             {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowchannelpakku"}
Number:Power               FroniusSchuppenPowerflowchannelppv                  "Current solar yield"                       {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowchannelppv"}
Number:Dimensionless       FroniusSchuppenPowerflowautonomy                    "Autonomy"                                  {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowautonomy"}
Number:Dimensionless       FroniusSchuppenPowerflowselfconsumption             "Self consumption"                          {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowselfconsumption"}
Number:Power               FroniusSchuppenPowerflowinverterpower               "Inverter power"                            {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowinverterpower"}
Number:Dimensionless       FroniusSchuppenPowerflowinvertersoc                 "Battery state of charge"                   {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowinvertersoc"}
Number:Power               FroniusSchuppenPowerflowinverter1Power              "Inverter 1 power (deprecated)"             {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowinverter1power"}
Number:Dimensionless       FroniusSchuppenPowerflowinverter1Soc                "Inverter 1 state of charge (deprecated)"   {channel="fronius:powerinverter:22f826fb77:0919368e5f:powerflowinverter1soc"}

Nachtrag!
Es ist möglich, das einige der Channels nur Daten liefern, wenn der Wechselrichter mit einem Smart-Meter gekoppelt ist.

B0LT
Beiträge: 11
Registriert: 19. Dez 2023 18:49
Answers: 0

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von B0LT »

violine21 hat geschrieben: 10. Jan 2024 17:54 So wie ich dich verstehe, möchtest du nur die von der Anlage erzeugten kWh wissen.?
Genau, und eben auch Wieviel IN und wieviel AUS dem Speicher bezogen wird.
violine21 hat geschrieben: 10. Jan 2024 17:54 Ich habe an meinem SymoGen leider keine Batterie, wo ich schauen könnte aber die Channels, die das Binding bereitstellt (nicht die API),
bieten jede Menge Daten.
Das Binding greift ebenfalls die API ab.
Ich nutze auch das Binding um an die Daten zu kommen was mir der Wechselrichter bereit stellt.
violine21 hat geschrieben: 10. Jan 2024 17:54 Wenn ich diesen Thread durchlese, hast du doch eigentlich schon alle Daten, die du für die Nachbildung des
Solar-Web-Portals benötigst.
da fehlt es sehr sehr weit um es selbst nachbilden zu können, da der Wechselrichter über seine API eben nicht alles bereit stellt. Und Somit auch das Binding nicht.
Eben weil es keine Ausgabe gibt für die reine Produktion der PV Module, wieviel IN den Speicher und AUS dem Speicher bezogen wird, wieviel der Wattpilot benutzt wird, und wieviel ich direkt verbaucht habe
violine21 hat geschrieben: 10. Jan 2024 17:54 Sollte dort nichts dabei sein, könntest du zur Not noch den TotalEnergy-Wert nehmen und diesen mittels einer Rule entsprechend aufbereiten.
Ist bei diesen Channels nichts passendes dabei?
Wie schon erwähnt passt das hinten und vorne nicht. Da In den TotalEnery Wert auch der Speicher mit einberechnet wird. Wenn ich am Abend aus meinem Speicher die Energie entnehme, dann steigt der Zähler vom TotalEnergy.
Damit ist der Wert für mich faktisch unbrauchbar.
violine21 hat geschrieben: 10. Jan 2024 17:54 Nachtrag!
Es ist möglich, das einige der Channels nur Daten liefern, wenn der Wechselrichter mit einem Smart-Meter gekoppelt ist.
Diese Daten habe ich zur Verfügung, allerdings helfen die mir leider ebenfalls nicht weiter.

Wie es scheint muss ich wohl oder übel drauf warten ob Fronius irgendwann die Werte in die API schreibt und man dann auch drauf zugreifen kann.

Im übrigen habe ich mit den aktuellen Verfügbaren Daten ja das Live Monitoring nachgebaut. Die Daten sind halt wirklich aktuell, nicht so wie das Solar.Web.

Sieht aktuell so aus:
Generelle Übersicht:
Bild

String Live Daten:
Bild

Batterie Live Daten:
Bild


edit:
Was mir noch eingefallen ist, und was ich noch realisieren will. Allerdings muss ich mich erstmal einlesen und schauen ob es eine passende Rule dafür gibt:
Wenn genug Überschuss vorhanden ist (Netzeinspeisung) dann sollte er mir einen Shelly schalten. Damit will ich einen Verbraucher einschalten wenn genug Überschuss vorhanden ist bzw. wenn dieser nicht mehr zur Verfügung steht wieder schalten . Allerdings sollte das abschalten etwas Zeitverzögert sein, denn es braucht nur mal eine Wolke drüber ziehen und den Ertrag kurzzeitig einbrechen lassen.

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Rule zur Berechnung von Tagesverbrauch

Beitrag von violine21 »

B0LT hat geschrieben: 13. Jan 2024 23:57 edit:
Was mir noch eingefallen ist, und was ich noch realisieren will. Allerdings muss ich mich erstmal einlesen und schauen ob es eine passende Rule dafür gibt:
Wenn genug Überschuss vorhanden ist (Netzeinspeisung) dann sollte er mir einen Shelly schalten. Damit will ich einen Verbraucher einschalten wenn genug Überschuss vorhanden ist bzw. wenn dieser nicht mehr zur Verfügung steht wieder schalten . Allerdings sollte das abschalten etwas Zeitverzögert sein, denn es braucht nur mal eine Wolke drüber ziehen und den Ertrag kurzzeitig einbrechen lassen.
Hiermit schalte ich eine elektrische Fussbodenheizung (ca. 750W):

Code: Alles auswählen

// FHZ Flur
rule "FHZ Flur"
when
    Item FHZ_Flur_Ein_Aus changed or
    Item ShellyPlus1PM_FHZFlur_RelayInput changed or
    Item VartaPNetzNumber changed
then

    // AUS durch manuelles Aus-Schalten
    if(FHZ_Flur_Ein_Aus.state == OFF) {
        FHZ_Flur_Status.sendCommand("Aus")
        ShellyPlus1PM_FHZFlur_RelayOutput.sendCommand(OFF)
        if(t_FHZ_Flur_Ein !== null) {
            t_FHZ_Flur_Ein?.cancel
            t_FHZ_Flur_Ein = null
        }
        if(t_FHZ_Flur_Aus !== null) {
            t_FHZ_Flur_Aus?.cancel
            t_FHZ_Flur_Aus = null
        }    
    }
    // AUS durch internen FHZ-Temperaturregler
    if(FHZ_Flur_Ein_Aus.state == ON && ShellyPlus1PM_FHZFlur_RelayInput.state == OFF) {
        FHZ_Flur_Status.sendCommand("Standby, Regler")
        ShellyPlus1PM_FHZFlur_RelayOutput.sendCommand(OFF)
        if(t_FHZ_Flur_Ein !== null) {
            t_FHZ_Flur_Ein?.cancel
            t_FHZ_Flur_Ein = null
        }
        if(t_FHZ_Flur_Aus !== null) {
            t_FHZ_Flur_Aus?.cancel
            t_FHZ_Flur_Aus = null
        }            
    }

    // +++ Automatik-Funktion +++
    // Hauptschalter ist EIN und FHZ-Temperaturregler ist EIN
    if(FHZ_Flur_Ein_Aus.state == ON && ShellyPlus1PM_FHZFlur_RelayInput.state == ON) {
        // Start der Einschalt-Zeit bei ausreichender PV-Leistung, nach Ablauf der Zeit: FHZ EIN
        // Heizrelais ist AUS
        if(ShellyPlus1PM_FHZFlur_RelayOutput.state == OFF) {
            if((VartaPNetzNumber.state as Number).intValue > 800) {
                FHZ_Flur_Status.sendCommand("Start-Zeit läuft")
                t_FHZ_Flur_Ein = createTimer(now.plusMinutes(1), [ |                
                    FHZ_Flur_Status.sendCommand("Ein, PV-Start")
                    ShellyPlus1PM_FHZFlur_RelayOutput.sendCommand(ON)
                    t_FHZ_Flur_Ein?.cancel
                    t_FHZ_Flur_Ein = null
                    ] )
            }
        }
        // Unterbrechung der Einschalt-Zeit durch zu niedrige PV-Leistung
        if(800 > (VartaPNetzNumber.state as Number).intValue && t_FHZ_Flur_Ein !== null) {
            FHZ_Flur_Status.sendCommand("Start-Zeit unterbrochen")                
            t_FHZ_Flur_Ein?.cancel
            t_FHZ_Flur_Ein = null                
        }
        // Start der Ausschalt-Zeit bei geringer PV-Leistung, nach Ablauf der Zeit FHZ AUS
        // Heizrelais ist EIN
        if(ShellyPlus1PM_FHZFlur_RelayOutput.state == ON) {
            if(100 > (VartaPNetzNumber.state as Number).intValue) {
                if(t_FHZ_Flur_Aus === null) {
                    FHZ_Flur_Status.sendCommand("Aus-Zeit läuft")
                    t_FHZ_Flur_Aus = createTimer(now.plusMinutes(1), [ |
                        ShellyPlus1PM_FHZFlur_RelayOutput.sendCommand(OFF)
                        FHZ_Flur_Status.sendCommand("Standby, PV aus")                
                        t_FHZ_Flur_Aus?.cancel
                        t_FHZ_Flur_Aus = null
                    ] ) 
                }  
        }
        // Unterbrechung der Ausschalt-Zeit durch erneuten PV-Überschuss   
        if((VartaPNetzNumber.state as Number).intValue > 800 && t_FHZ_Flur_Aus !== null) {
            FHZ_Flur_Status.sendCommand("Ein, PV-Start")
            ShellyPlus1PM_FHZFlur_RelayOutput.sendCommand(ON)                
            t_FHZ_Flur_Aus?.cancel
            t_FHZ_Flur_Aus = null
            }
        }
    }
end
Schade, das ich an meinen beiden Fronius-Wechselrichtern keine DC-Batterie habe. Ich habe eine VARTA-AC-Batterie, die verrät mir die notwendigen Daten.
Ich habe jetzt nicht nochmal gelesen aber was für eine Batterie hast du?

Antworten