

CalculateEnergy (Leistung berechnen)
Dieser Baustein gehört zum Paket „Energy (Energie)“.
Paket-Preis: 22,50€
Kurzbeschreibung
Diese Logik berechnet den Energieverbrauch auf Basis eines extern gelieferten Leistungswertes – zum Beispiel von einem MDT AMI oder vergleichbaren Geräten. Dabei werden sowohl der Tagesverbrauch als auch der Gesamtverbrauch kontinuierlich erfasst. Der Verbrauch wird in regelmäßigen Abständen gespeichert, sodass auch nach einem Neustart keine Daten verloren gehen. Über definierbare Schwellenwerte können verschiedene Korrekturfaktoren verwendet werden, um den tatsächlichen Verbrauch möglichst genau zu berechnen. Die Daten werden auf einer SD-Karte gespeichert.
Besonderheit
Ideal für MDT AMI oder ähnliche Messgeräte mit Leistungswertausgabe.
Zwei Korrekturfaktoren (CosPhi) ermöglichen realistische Berechnung abhängig von der Last.
Zeitintervalle frei konfigurierbar für Update-, Kurzzeit- und Langzeitanalyse.
Daten bleiben erhalten durch Speicherung auf SD-Karte – auch bei Stromausfall oder Neustart.
Tagesverbrauch kann optional um Mitternacht zurückgesetzt werden.
System reagiert automatisch, wenn keine gültigen Leistungsdaten mehr geliefert werden.
Protokollierung bei jeder Funktionseinheit, z. B. zur Fehlersuche.
Diese Anwendung wurde speziell für die Nutzung mit Geräten konzipiert, die fortlaufend den aktuellen Energieverbrauch in Watt melden. Dies können z. B. Energiemessmodule wie MDT AMI oder andere Sensoren sein, die regelmäßig aktuelle Leistungswerte senden.
Sobald die Logik aktiviert ist, beginnt sie damit, aus den Leistungswerten die verbrauchte Energie zu berechnen. Die Besonderheit liegt in der Anwendung zweier unterschiedlicher Korrekturfaktoren (CosPhi-Werte). Abhängig davon, ob der Leistungswert unter oder über einem bestimmten Schwellenwert liegt, wird ein jeweils anderer Faktor verwendet. Dies erhöht die Genauigkeit der Verbrauchsberechnung.
Die Logik arbeitet mit drei verschiedenen Zeitintervallen:
Update-Intervall (z. B. alle 2 Sekunden): Hier wird die aktuelle Leistung verarbeitet.
Kurzzeit-Intervall (z. B. alle 10 Sekunden): Hier wird der durchschnittliche Verbrauch über kurze Zeiträume ermittelt.
Langzeit-Intervall (z. B. alle 60 Sekunden): Langfristige Auswertung, Speicherung und Aktualisierung des Tagesverbrauchs.
Alle berechneten Werte werden in Dateien auf einer SD-Karte gespeichert, sodass sie bei einem Neustart automatisch wieder zur Verfügung stehen. Optional kann der Tagesverbrauch um Mitternacht automatisch zurückgesetzt werden, während der Gesamtverbrauch erhalten bleibt. Durch die Speicherung auf der SD-Karte gehen keine Daten verloren – selbst bei Stromausfällen.
- Activate (bool):
Die Berechnung des Energieverbrauchs ist aktiv. - ResetAtMidnight (true):
Tageswerte werden automatisch um Mitternacht zurückgesetzt. - CurrentPower (double):
Aktueller Leistungswert in Watt, z. B. von einem MDT AMI geliefert. - Threshold (double):
Schwellenwert in Watt – bestimmt, wann CosPhi_1 oder CosPhi_2 verwendet wird. - CosPhi_1 (double):
Korrekturfaktor bei niedriger Last (unterhalb Threshold). (Min: 0 | Max: 1) - CosPhi_2 (double):
Korrekturfaktor bei höherer Last (ab Threshold). (Min: 0 | Max: 1) - UpdateTime (timespan):
Intervall zur Verarbeitung des Leistungswerts (z. B. alle 2 Sekunden). - ShortTime (timespan):
Intervall zur Ermittlung von Kurzzeit-Durchschnittswerten (z. B. alle 10 Sekunden). - LongTime (timespan):
Intervall zur Langzeitauswertung und Speicherung (z. B. alle 60 Sekunden). - StoragePath (string):
Ordnerpfad auf der SD-Karte, unter dem die Daten gespeichert werden.
- PowerDayLongTime (double):
Tagesverbrauch basierend auf dem Langzeit-Intervall (in kWh). - PowerDayShortTime (double):
agesverbrauch basierend auf dem Kurzzeit-Intervall (in kWh). - CurrentPowerUpdateTime (double):
Aktuelle Leistung zum letzten Update-Zeitpunkt. - CurrentPowerShortTime (double):
Durchschnittlicher Leistungswert im Kurzzeit-Intervall. - CurrentPowerLongTime(double):
Durchschnittlicher Leistungswert im Langzeit-Intervall. - PowerTotal (double):
Gesamter Verbrauch seit Beginn der Messung (in kWh). - LogExecute (string):
Protokoll der Ausführung und Initialisierung. - LogScheduleUpdate (string):
Protokoll der regelmäßigen Aktualisierung der Werte. - LogScheduleShort (string):
Protokoll der Kurzzeitauswertung. - LogScheduleLong (string):
Protokoll der Langzeitauswertung und Speicherung. - LogScheduleReset (string):
Protokoll des automatischen Tages-Resets.
Beispiel 1 – Energieüberwachung mit MDT AMI im Technikraum:
Ein MDT AMI Energiemessgerät misst kontinuierlich die aktuelle Leistungsaufnahme einer Heizungsanlage im Technikraum. Ziel ist es, auf Basis dieser Werte automatisch den Tages- und Gesamtverbrauch zu berechnen. Zusätzlich soll sichergestellt werden, dass bei niedriger Last ein anderer Leistungsfaktor verwendet wird als bei hoher Last. Die Daten sollen dauerhaft auf der SD-Karte gespeichert werden – selbst bei Stromausfall. Ein automatischer Reset der Tageswerte erfolgt täglich um Mitternacht.
- Eingabe:
Activate: true
→ Die Berechnung des Energieverbrauchs ist aktiv.ResetAtMidnight: true
→ Tageswerte werden automatisch um Mitternacht zurückgesetzt.CurrentPower: 115
→ Aktueller Leistungswert in Watt, bereitgestellt durch das MDT AMI.Threshold: 100
→ Schwellenwert: Liegt der Leistungswert darüber, wird CosPhi_2 verwendet – darunter CosPhi_1.CosPhi_1: 0.95
→ Korrekturfaktor bei geringer Last, d. h. wenn CurrentPower unter 100 Watt liegt.CosPhi_2: 0.85
→ Korrekturfaktor bei höherer Last, d. h. wenn CurrentPower 100 Watt oder mehr beträgt.UpdateTime: 00:00:02
→ Alle 2 Sekunden wird der aktuelle Leistungswert verarbeitet.ShortTime: 00:00:10
→ Durchschnittsberechnung über jeweils 10 Sekunden.LongTime: 00:01:00
→ Auswertung und Speicherung erfolgen alle 60 Sekunden.StoragePath: „Technikraum“
→ Daten werden auf der SD-Karte im Verzeichnis „/opt/card/SmartSystemSolutions/calculateworkfromami/Technikraum“ gespeichert.
- Ausgabe:
CurrentPowerUpdateTime: 97.75
→ Der aktuelle Leistungswert nach Anwendung des passenden CosPhi-Faktors (115 × 0.85).CurrentPowerShortTime: 98.1
→ Durchschnittlicher Leistungswert der letzten 10 Sekunden (mit CosPhi-Faktor berechnet).CurrentPowerLongTime: 97.6
→ Durchschnittlicher Leistungswert der letzten 60 Sekunden.PowerDayShortTime: 0.14
→ Tagesverbrauch auf Basis des Kurzzeit-Intervalls – z. B. nach 3 Stunden Laufzeit.PowerDayLongTime: 0.15
→ Tagesverbrauch auf Basis des Langzeit-Intervalls – Werte werden regelmäßig aktualisiert.PowerTotal: 18.75
→ Gesamter Energieverbrauch in Kilowattstunden (inkl. vergangener Tage).LogExecute:
→ Enthält Hinweise zur Initialisierung, SD-Kartenprüfung und Systemstart (z. B. „Init erfolgreich, Speicherpfad erkannt“).LogScheduleUpdate:
→ Zeigt, wann das letzte Update des Leistungswerts durchgeführt wurde.LogScheduleShort:
→ Dokumentiert die Kurzzeitauswertung – z. B. „Short interval processed, value updated.“LogScheduleLong:
→ Bestätigt die Speicherung der Tages- und Verbrauchsdaten auf der SD-Karte.LogScheduleReset:
→ Dokumentiert, wann der Tagesverbrauch automatisch zurückgesetzt wurde – z. B. „Reset at 00:00 erfolgreich.“
📌 Hinweise
Das MDT AMI sollte regelmäßig neue Leistungswerte senden (idealerweise mindestens alle 2 Sekunden).
Bei Stromausfall oder Neustart bleiben alle gespeicherten Verbrauchswerte erhalten.
Die Berechnung erfolgt nur, wenn der Leistungswert größer 0 ist.
Die Umschaltung zwischen CosPhi_1 und CosPhi_2 erfolgt automatisch anhand des Schwellenwerts.


Nein, eine SD-Karte wird benötigt, um die Verbrauchswerte dauerhaft zu speichern. Ohne SD-Karte gehen die Daten nach einem Neustart verloren.
Sobald der Leistungswert 0
ist oder sich nicht ändert, wird die Berechnung automatisch gestoppt. Alle laufenden Zeitsteuerungen werden dann beendet.
Ja, du kannst realistische Werte eintragen. In der Regel liegt der CosPhi bei 0.9–0.95 für typische Haushaltsgeräte. Bei höheren Lasten ist ein niedrigerer CosPhi (z. B. 0.85) sinnvoll.
- Version 3.0.10
- First Release
Baustein-Support
Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute, LogScheduleUpdate, LogScheduleShort, LogScheduleLong und LogScheduleReset, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!