NEWS
Simulation PV-Speicher
-
@datzerf OK.
Werde das mal bei mir einrichten und beobachten.
Bin mal auf dein Feedback nach einem oder 2 Monaten gespannt.
-
@wendy2702
gerne, ich entschuldige mich auch gleich für die chaotischen Blockly. Bin absoluter Anfänger und überzeugt, dass es einfacher und eleganter funktioniert. Die Scripte sind nach und nach entstanden...... -
@datzerf Musst dich bei mir ganz bestimmt nicht entschuldigen. Bin auch Javascript legastheniker.
-
Hallo in die Runde,
ich habe die Simulation noch etwas erweitert.
Neben dem Vergleich der Echtesten mit einem simulierten Speicher habe ich noch die Daten für eine Finanzierung über ein Darlehen eingefügt. Weil es einfacher ist, wird das Darlehen linear (kein Annuitäten-Darlehen) zurückgeführt. Summe Tilgung + Zins über die Laufzeit von 10 Jahren x Zinstage p.A.
Weiterhin habe ich die Ermittlung des EEG - Ertrages angepasst. Die Ermittlung läuft nun Analog der Berechnung des Netzbetreibers. -
@datzerf Da wollte ich grad ein total cooles, inovatives Projekt umsetzen und da hast Du es schon fertig
Danke schon mal fürs teilen!
Ich hab mir die Scripte auch schon mal rein geladen. Bevore ich sie scharf schalte noch nen kurze Frage: Es werden drei Werte benötigt bzw. sind auf das eingene Setup anzupassen:
smartmeter.0.1_8_0.value: Bezug aus dem Netz in kWh
smartmeter.0.2_8_0.value: Abgabe ans Netz in kWh
smartmeter.1.1_8_0.value: Produktion der PV Anlage in kWhLiege ich damit richtig?
Ansonsten muss ich dann noch die ganzen Datenpunkte anlegen. Da werde ich mich mal an einem Script versuchen.
-
@dominic151617,
sorry, hab Deine Frage leider erst heute gesehen....
Ja, damit liegst Du richtig. Wie Du aus der Benennung der Datenpunkte ersiehst habe ich 2 Smartmeter-Instanzen eingerichtet, die über das D0 - Protokoll die Daten von 2 Stromzählern mit IR-Schnittstelle abgreifen.
Da meine PV mit Eigenverbrauchsregelung läuft musste ich bei Inbetriebnahme für die PV-Anlage selbst einen separaten Zähler installieren. Der wird über die "smartmeter.1" - Instanz abgefragt. Die "smartmeter.0" - Instanz holt die Daten eines 2-Wege Stromzählers der den Bezug bzw. die Lieferung an den Netzbetreiber zählt.
Sofern Du also keinen Stromzähler für die PV-Anlage hast wirst Du Daten aus Deinem Wechselrichter verwenden müssen.Viele Grüße
Franz
-
@datzerf
Danke! Wie Du merkst bin ich auch nicht schnell mit antworten. Leider laufen solche Sachen eher unter der Prio 10.Genrell scheint es auch bei mir zu laufen. Ich muss mich aber noch mal um eine ordnetliche Visualisierung in Grafana oder so kummern, damit ich die plausibilität prüfen kann.
Aber falls noch jemand das Script bei sich nutzen möchete, hier das "Script" zum anlegen der Datenpunkte.
createState('0_userdata.0.PVSpeicher.Eigenverbrauch.Direktverbrauch', true, {type: 'number',name: 'Direktverbrauch',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.DirektverbrauchEEG', true, {type: 'number',name: 'DirektverbrauchEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.DVEinspeisung', true, {type: 'number',name: 'DVEinspeisung',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.DVPVProuktion', true, {type: 'number',name: 'DVPVProuktion',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.EigenverbrauchSpeicher', true, {type: 'number',name: 'EigenverbrauchSpeicher',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.EigenverbrauchSpeicherEEG', true, {type: 'number',name: 'EigenverbrauchSpeicherEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.EigenverbrauchSumme', true, {type: 'number',name: 'EigenverbrauchSumme',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Eigenverbrauch.EigenverbrauchSummeEEG', true, {type: 'number',name: 'EigenverbrauchSummeEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Preise.Bezug', true, {type: 'number',name: 'Bezug',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Preise.EEG', true, {type: 'number',name: 'EEG',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Preise.Einspeisung', true, {type: 'number',name: 'Einspeisung',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherBezug', true, {type: 'number',name: 'PVSpeicherBezug',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherEEG', true, {type: 'number',name: 'PVSpeicherEEG',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherEinspeisung', true, {type: 'number',name: 'PVSpeicherEinspeisung',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherErsparterBezug', true, {type: 'number',name: 'PVSpeicherErsparterBezug',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherErtrag', true, {type: 'number',name: 'PVSpeicherErtrag',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherKosten', true, {type: 'number',name: 'PVSpeicherKosten',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.PVSpeicher.PVSpeicherSumme', true, {type: 'number',name: 'PVSpeicherSumme',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealBezug', true, {type: 'number',name: 'RealBezug',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealEEG', true, {type: 'number',name: 'RealEEG',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealEinspeisung', true, {type: 'number',name: 'RealEinspeisung',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealErsparterBezug', true, {type: 'number',name: 'RealErsparterBezug',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealErtrag', true, {type: 'number',name: 'RealErtrag',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealKosten', true, {type: 'number',name: 'RealKosten',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Kostenrechnung.Real.RealSumme', true, {type: 'number',name: 'RealSumme',read: true,write: true,unit: '€',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.BezugSpeicher', true, {type: 'number',name: 'BezugSpeicher',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.EinspeisungSpeicher', true, {type: 'number',name: 'EinspeisungSpeicher',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.Entladezähler', true, {type: 'number',name: 'Entladezähler',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.Ladezähler', true, {type: 'number',name: 'Ladezähler',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.Speicherinhalt', true, {type: 'number',name: 'Speicherinhalt',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.SpeicherNutzinhalt', true, {type: 'number',name: 'SpeicherNutzinhalt',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.PVSpeicher.PVProduktionSpeicher', true, {type: 'number',name: 'PVProduktionSpeicher',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.PVZaehlerDiff', true, {type: 'number',name: 'PVZaehlerDiff',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.Bezug', true, {type: 'number',name: 'Bezug',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.BezugsZaehlerDiff', true, {type: 'number',name: 'BezugsZaehlerDiff',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.EinspeiseZaehlerDiff', true, {type: 'number',name: 'EinspeiseZaehlerDiff',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.Einspeisung', true, {type: 'number',name: 'Einspeisung',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.BezugsZaehler', true, {type: 'number',name: 'BezugsZaehler',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.EinspeiseZaehler', true, {type: 'number',name: 'EinspeiseZaehler',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.PVZaehler', true, {type: 'number',name: 'PVZaehler',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.StromZaehler.PVProduktion', true, {type: 'number',name: 'PVProduktion',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherBezug', true, {type: 'number',name: 'PVSpeicherBezug',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherEigenverbrauchSpeicher', true, {type: 'number',name: 'PVSpeicherEigenverbrauchSpeicher',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherEigenverbrauchSpeicherEEG', true, {type: 'number',name: 'PVSpeicherEigenverbrauchSpeicherEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherEigenverbrauchSumme', true, {type: 'number',name: 'PVSpeicherEigenverbrauchSumme',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherEigenverbrauchSummeEEG', true, {type: 'number',name: 'PVSpeicherEigenverbrauchSummeEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.PVSpeicherEinspeisung', true, {type: 'number',name: 'PVSpeicherEinspeisung',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.RealBezug', true, {type: 'number',name: 'RealBezug',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.RealDirektverbrauch', true, {type: 'number',name: 'RealDirektverbrauch',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.RealDirektverbrauchEEG', true, {type: 'number',name: 'RealDirektverbrauchEEG',read: true,write: true,unit: 'kWh',role: 'per Script'}); createState('0_userdata.0.PVSpeicher.Summenbildung.Strom-Mengen.RealEinspeisung', true, {type: 'number',name: 'RealEinspeisung',read: true,write: true,unit: 'kWh',role: 'per Script'});
-
Hallo @DatzerF . Kannst du mir evtl sagen wie ich die .xml in Blockly importiert bekomme. Bin noch nicht solange dabei und suche nach genau so einen Ansatz, wie du ihn beschreibst.
-
Hallo zusammen,
ich muss mich der Frage von TomTom 0 leider anschließen.
Die Daten aus den .xml Files entsprechen ja nicht der typischen, exportieren, Blockly Struktur...Irgend wie stehe ich gerade auf dem Schlauch...
Danke euch!
Gruß Christian
-
@DatzerF : Kannst du die Scripte bitte nochmal zur Verfügung stellen. Die Forensoftware hat da scheinbar was kaputt gemacht.