wollt mal fragen ob es mittels eins Scriptes möglich ist die Impulse die mir der Stromzähler ausgibt unterschiedlich zu loggen?
Sprich ich habe einen Wärmepumpentarif mit 2 Tarifen HT von 8-20 Uhr und einen NT von 20-8 Uhr.
Momentan logge ich alles in eine Variable, sprich Hoch und Niedertarif sind nicht getrennt!
Gibt es eine Möglichkeit, mittels Script, das ich ab 20 Uhr in eine andere Variable loggen kann?
Oder kann ich mir die Werte aus dem Archiv importieren ( zb 8-20 Uhr)? Ist vermutlich einfacher?
Wie macht Ihr das?
Du könntest mit einem Event auf Änderungen der Zähler-Variable reagieren. In dem dazugehörigem Skript prüfst du die aktuelle Uhrzeit und entscheidest so, welcher Tarif aktuell greift. Dann addierst du die aktuelle Differenz auf eine zusätzliche Zählervariable des entsprechenden Zeitintervalls. Dafür bräuchtest du also 2 zusätzliche Variablen und hast dann eine für den Gesamtzähler (wie vorher) und zwei neue für die verschiedenen Zeitintervalle.
Alternativ kannst du via stündlicher Aggregation für einen einzelnen Tag die Daten in den entsprechenden Intervallen auslesen. Mit einer Schleife kann man dann über eine beliebige Anzahl von Tagen gehen. Der Vorteil im Vergleich zur ersten Variante wäre, dass hier keine zusätzlichen Daten geloggt werden. Allerdings ist hierfür ein erhöhter Rechenaufwand erforderlich, wenn die Daten abgefragt werden.
Das ist möglich, aber leider nicht sehr einfach. Die Idee würde der Variante 2 aus meinem letzten Beitrag entsprechen, du müsstest also für jeden Tag die Intervalle aus der stündlichen Aggregation abgreifen und die Summe dann in die passenden Variablen schreiben.
so wie ich das jetzt mit deinem Script verstanden habe, wird immer die Differenz dazugezählt je nachdem welcher Tarif aktuell laut „hour“ Eingestellt wurde.
Dann muss ich am 1.Jänner immer die Variable Tag und Nacht auf „null“ setzen? Ist das Richtig?
Sonst zählt das Script ja weiter?
Aber du musst die Variable eigentlich gar nicht zurücksetzen. Wenn du die Variable als Zähler loggst, dann werden alle positiven Differenzen geloggt. Wenn du die also die Aggregation für ein Jahr ausgibst, dann bekommst du den Verbrauch in diesem Jahr zurück und musst die Variable dafür nicht zurücksetzen.
Ist die Variable auch als Zähler geloggt? Denk daran, dass du für den Tagesverbrauch auch die aggregierten Werte des Tages auslesen musst. Wenn diese nicht stimmen, was passt dabei denn nicht?
Denk daran, dass alle positiven Deltas summiert werden. Das ist also nicht einfach die Differenz zwischen dem ersten und letzten Wert des Tages, insbesondere dann nicht, wenn dieser mal auf 0 zurückgesetzt wird.
ich versuch es genauer zu erklären:
Der aktuelle Tarif meines EVU ist Tarif 1 von 19-7Uhr / 7-19Uhr.
Hierfür möchte ich das ich erkennen kann wann ich wieviel Strom benötige der verbrauch jeweils in eine separate Variable geschrieben wird.
Variable 19-7 Uhr ist die 11063
Variable 7-19 Uhr ist die 17110
Das Archiv ist 44061
Die Variable 34126 ist die Variable ich als Zähler Logge, das ist die Variable wo von 0-24 Uhr geloggt wird.
Von dieser muss ich ja die Daten abfragen?
ich habe Dein Skript noch nicht ausprobiert, aber die Abfrage
if (($hour >= 7) && ($hour <= 19)) {
ruft im Zweifelsfall Deinen Verbrauch bis 19:59 Uhr auf.
Ist das vielleicht schon Deine Ungenauigkeit? Dann vielleicht mal die 19 in eine 18 tauschen.
Je nachdem wann der erste Zählerstand ab bzw. der letzte vor 07:00 Uhr geloggt wurde hast Du natürlich auch noch einen Verbrauchsanteil vor 7:00 Uhr im Tagesverbrauch mit drin. Dasselbe gilt natürlich auch für abends.
Für richtiges funktionieren sollte es jedesmal ausgeführt werden, wenn sich die geloggte Zählervariable (bei Dir die ID 34126) ändert. Dann prüft das Skript die aktuelle Uhrzeit (Stunde) und addiert den Verbrauch seit letzter Ausführung zu der jeweiligen Tages- oder Nachtvariable hinzu.
Was ich nicht weiß: Wann kommen bei Dir die Daten an der ID 34126 an, bzw. wie wird der Zähler ausgelesen?
Wird der Zähler zu festen Zeiten gelesen, z.B. immer zur vollen Stunde, dann ist es einfach. Kommen die Daten jedoch unregelmäßig wird es schwieriger. Kritisch sind da besonders die Zeiten um die Umschaltzeitpunkte 07:00 und 19:00 Uhr.
Das führt dann zur Ungenauigkeit, wie von mir schon beschrieben: z.B. Zählerauslesung um 6:53 Uhr, nächste Auslesung um 7:03 Uhr -> Das Skript schreibt die Differenz (den Verbrauch) zwischen diesen Zeitpunkten in die Variable 7-19. Ein Teil des Verbrauches fand aber bereits vor 07:00 Uhr statt. Wie groß dieser Teil ist, weiß niemand.
Je nach Größe Deines Ausleseintervalls und Höhe Deines Verbrauchs (insbesondere in den Zeiten um 7 und 19 Uhr), kannst Du diese Ungenauigkeit selbst abschätzen und entscheiden, ob Du damit leben kannst.