Skip to content

Skriptausdrücke

Mathias edited this page Sep 13, 2023 · 5 revisions

Skript-Ausdrücke (ab V3.4.0)

Skripte können auch nur aus einem Berechnungsausdruck (Formel, Term) mit Zeitreihen bestehen. Weitere Informationen sind im Abschnitt Skriptumgebung zu finden.

Anwendungsbeispiele

Einsparung durch Mini-Photovoltaik-Anlage berechnen

Bei einem installierten Zweirichtungszähler am Hausanschluss ist die Berechnung der Einsparung durch eine Mini-Photovoltaik-Anlage nicht trivial, da die eingespeiste Energie nicht vergütet und auch nicht mit der bezogenen Energie verrechnet wird. Es können nicht einfach die Energiezähler am Hausanschluss und an der Photovoltaik-Anlage verrechnet werden. Es muss zu jedem Zeitpunkt berechnet werden, welche Leistung der Anlage mit den eigenen Verbrauchern gerade genutzt wird. Dies ist dann die Einsparung.

Benötigte Historian-IDs:

  • Leistungsmessung Hausanschluss Phase 1 [W] (z.B. 802)
  • Leistungsmessung Hausanschluss Phase 2 [W] (z.B. 809)
  • Leistungsmessung Hausanschluss Phase 3 [W] (z.B. 796)
  • Leistungsmessung Mini-Photovoltaik-Anlage [W] (z.B. 890)

Hinweis: Die Leistungsmessung am Hausanschluss liefert einen positiven Wert bei Strombezug. Die Leistungsmessung an der Anlage leifert einen positiven Wert bei Stromerzeugung.

ha1=dataPoint(802)
ha2=dataPoint(809)
ha3=dataPoint(796)
/*
Die Messung für die PV-Anlage muss bei mir mit einem Faktor korrigiert werden.
*/
pv=dataPoint(890)*0.917

/*
Ein saldierender Zähler verrechnet Bezug und eine evtl. Einspeisung über alle Phasen.
*/
ha=ha1+ha2+ha3

/*c
Berechnung der ins Netz ohne Vergütung eingespeisten Leistung:
(-ha)       : Vorzeichen umkehren, die eingespeiste Leistung ist nun positiv.
.clipZero() : Die bezogene Leistung, sie ist jetzt negativ, wegschneiden.
*/
el=(-ha).clipZero()

/*
Berechnung der selbst genutzten durch die PV-Anlage erzeugten Energie.
Die Zeitreihe ist jetzt ein aufsteigender virtueller Energiezähler.
pv-einsp    : Leistung, die direkt von der PV-Anlage zu den Verbrauchern fließt.
.integrate(): Leistung [W] in Energie [Wh] umrechnen.
/1000       : [Wh] in [kWh] umrechnen.
*/
se=(pv-el).integrate()/1000

/*
Von dem virtuellen Energiezähler den höchsten Wert ermitteln.
maximum     : Den höchsten Wert, das wird der letzte Eintrag in der Zeitreihe sein, des virtuellen Energiezählers ermitteln.
*/
mse=se.maximum()

/*
Hinweis: Bisher wurde nur der neue Datenpunkt mse über eine Formel definiert. Es ist bisher keine Berechnung durchgeführt worden.

Auswertungszeittraum definieren.
*/
begin=parseDate("21.5.2023")
end=parseDate("24.8.2023")

/*
Zeitreihe berechnen und lesen. In diesem Fall wird die Zeitreihe nur einen Eintrag besitzen.
*/
mse.read(begin, end)

Beispielausgabe des Skripts:

2023-05-21 00:00:00.000, 171.1643907965838, 2

(Für den angegebenen Zeitbereich wurde der Wert 171,16 kWh ermittelt.)