Zählerstand als Zyklisches Ereignis Loggen/ Speichern

Hallo
ich würde gerne für eine Gewisse zeit meinen Zählerstand loggen um meine Tages und Nachtverbrauch ermitteln zu können.

Bsp.
Zählerstand um 7uhr und um 19uhr
Zählerstand um 19uhr und um 7uhr

Via Rechenmodul würde ich mir dann die Tages und Nachtwerte ausgeben lassen.

Wie muss ich da vorgehen?
Ich habe mal ins Ereignis geschaut aber irgendwie nix passendes gefunden

gruß
Sven

Du solltets uns schon verraten, ob du den Zählerstand (Strom / Gas / Wasser) als Wert (Integer / Float) schon in Symcon vorliegen hast. Oder erst als Binärsignal noch zählen musst und dann eine Auswertung machen willst, hier Forum sind schon einige Lösungen vorgestellt worden.

Grüße aus dem Norden
Lutz

Hallo
der Zählerstand (Strom) liegt bereits als FLOAT in Symcon vor.

Dann musst du zwei Zählervariable (Float) anlegen, eine für den Anfang und um 07:00 den Wert dahin schreiben und eine für 19:00 für den Endwert Tag. Dann wieder zwei Zählervariable für die Nacht-Werte 19:00 und 07:00.
Die Auswertung kannst du mit dem Ablaufplan oder einem Skript dann machen welche zum Zeitpunkt aufgerufen wird, z.B.

<?php

$z_anfang = GetValueFloat(12345); // Aktueller Zählerstand lesen

SetValueFloat(67891, $z_anfang); // Zählervariable setzen

Die Zählervariablen müssen natürlich aufgezeichnet werden.

Dann schaue ich mal ob ich dich richtig verstanden habe und teste das heute abend mal

Du kannst eine zusätzliche Variable erstellen und als Zähler loggen, in welche du die Zeitpunkte abspeicherst. Per zyklischem Ereignis mit der Aktion „Auf Wert anderer Variable setzen“ überträgst du dann um 19 bzw. 7 Uhr den Zählerstand. In der Tagesansicht des Graphen erkennst du dann den jeweiligen Verbrauch oder kannst diesen auch abfragen. Der einzige Dreher bei dem du aufpassen musst, der Verbrauch wird damit immer zum Ende des Intervalls gespeichert, also beschreibt der Balken bei 19:00 Uhr den Verbrauch von 7:00 bis 19:00 Uhr und entsprechend der Balken um 7:00 den Verbrauch der Nacht.

Wo liegt mein fehler?

ips_tagesverbrauch_ereignis

Das Ergebnis stimmt so nicht

Hallo
ich habe es geschafft
Nun zu einem neuen Problem…
Im WF wird mir die Differenz der Geloggten Daten Angezeigt, nicht der wirkliche wert.
Kann ich das ändern?

Die Differenz wird angezeigt wenn die Variable als Zähler geloggt wird. Wenn das nicht gewünscht ist kannst du die Aggregation auf Standard umstellen.

Hi
Das habe ich bereits getestet.
Dann wechselt die balkendarstellung auf linie und auch dann wird mir der reale wert nicht angezeigt…

Ich habe jetzt mal alles gelöscht und neu angelegt …mal sehen wie es beim nächsten log aussieht

Ja, dann sieht man im Webfront den Wert und im Diagramm den Zeitverlauf des Variablenwertes anstelle der Differenzen pro Zeitraum.

Ich verstehe leider nicht deine Vorstellung/Wünsche was angezeigt werden soll. Was meinst du mit „realem Wert“? Etwas mehr Infos wäre hilfreich damit man dir helfen kann.

Wie oben schon gezeigt bzw erwähnt soll mir der tages bzw nachtverbrauch angezeigt werden.

Die ermittlung des wertes klappt mittlerweile .
Der diagrammtyp ist erstmal nebensächlich.

Mein startwert lag bei 3.5kw
Dann kam der naechste wert dazu, 6,5kw…
Eigentlich hatte ich erwartet das ein neuer balken mit eben diesen 6,5kw erzeugt wird .

Dem war nicht so .
Als zähler wurde die Differenz ,3kw, angezeigt.
Als ich dann auf Standart umgrstellt habe kam irgendwas mit 4 dabei rum…
Ebenso wurden mir unterschiede im diagramm bei tag und woche angezeigt…

Hoffe das war jetzt einigermaßen verständlich. Sonst gucke ich heute Abend mal nach bildmaterial,insofern das neuanlagen nicht geholfen hat

Dir ist offenbar nicht bewusst wie missverständlich du hier kommunizierst. Bei diesem Thema kommt es sehr auf Details an, in diesem Fall darauf ob „Wert“ bereits eine von dir berechnete Zählerdifferenz ist oder ein Zählerstand. Offenbar hast du bereits eine Differenz berechnet und diese geloggt mit Einstellung Zähler, so daß IPS bei der Darstellung seinerseits nochmal eine die Differenz bildet: Wert 6.5 minus voherigem Wert 3.5 = anzuzeigende Differenz 3.0

Um Missverständnisse auszuschliessen fangen wir nochmal ganz von vorne an!

Wenn du in IPS deinen normalen Zählerstand mit Aggregation als „Zähler“ loggst, so siehst du als Zahlenwert in der Konsole den Zählerstand aber in den Diagrammen wird automatisch eine Differenz (Änderung) im Zeitraum angezeigt. Je nach Zeitraum des Diagramms ändert sich auch die Berechnung: bei Darstellung einer Woche oder eines Monats würde im Diagramm die Änderung pro Tag (also Verbrauch innerhalb 24h) dargestellt. Merke: man sieht bei „Zähler“ immer ein Diagramm der Änderung, automatisch berechnet je nach dargestelltem Zeitraum pro Tag oder pro 5 Minuten oder pro Monat. Nochmals: geloggt wird hier der Zählerstand, IPS zeigt automatisch die Änderung, abhängig vom dargestellten Zeitraum des Diagramms!

Wenn du hingegen beim Logging der Zählervariable die Aggregation auf „Standard“ stellst (anstatt Zähler) so wirst du in Diagrammen einfach das Hochlaufen des Zählerwerts sehen. Merke: bei „Standard“ wird im Diagramm keine Änderung im Zeitraum berechnet sondern einfach der Zahlenwert dargestellt.

Kommen wir nun zum Vorschlag von Niels, eine neue Variable anzulegen und hier den Zählerstand um 07:00 und 19:00 hinein zu kopieren. Wenn man hier die Aggregation als Zähler wählt so würde man im Diagramm der Tagesdarstellung einen Sprung um 07.00 und 19:00 sehen, jeweils um die Änderung zum vorangegangen Wert => Verbrauch deines Tag- bzw. Nacht-Intervalls. Nachteil ist aber, dass dies nur funktioniert wenn man als Zeitachse einen Tag wählt. In der Darstellung einer Woche oder eines Monats würde IPS wiederum die Wertänderungen pro 24h zusammenfassen, die Unterscheidung deiner Werte nach Tag und Nacht wäre in dieser Darstellung verloren.

Beachte, dass in allen bisher diskutierten Varianten keine manuelle Berechnung einer Differenz erfolgt, das erledigt IPS intern im Diagramm wenn die Aggregation der Variable als Zähler gewählt ist!

Wenn dein Wunsch ist, eine Tages- und Nachtverbrauch zu erfassen und diesen auch in der Wochen- und Monatsansicht darzustellen, dann funktioniert der zuvor genannte Weg nicht weil IPS bei der Darstellung einer Zähleraggregation die Verbräuche pro 24h zusammenfassen würde.

Ich würde es so lösen:
zwei neue Variablen für den Zählerstand um 07:00 und 19:00 sowie zwei neue Variablen für die daraus berechneten Differenzen = Verbräuche im Zeitraum Tag bzw. Nacht. Die Variablen für Differenz=Verbrauch werden als Standard geloggt (nicht Zähler), die Begründung sollte aus dem vorhergehenden Text klar geworden sein. Die Variablen der Zählerstände 07:00 und 19:00 müssen nicht geloggt werden.

Mit einem zyklischen Ereignis um 07:00 werden zwei Aufgaben erledigt:
(1) du kopierst den Stand des Zählers in die Variable für Zählerstand 07:00
(2) du berechnest die Differenz zum Zählerstand 19:00. Die so ermittelte Differenz ist der Verbrauch der Nacht, den Wert speicherst du in die Variable für den Nachtverbrauch.

Für 19:00 legst du ein zyklisches Ereignis an das entsprechend die Tag-Werte verarbeitet.

Nun kannst du diese Werte für Verbrauch Tag bzw. Nacht als Diagramm darstellen, unabhängig vom gewählten Zeitraum.

Viel Erfolg!
Volker

Na das nenn ich mal eine Detailierte Antwort :dizzy_face: :see_no_evil:
So habe selbst ich das Verstanden…Vielen dank dafür

Ich habe das jetzt so umgesetzt und jetzt scheint es zu Klappen mit dem was ich mir gedacht habe

anbei die fotos
Feinarbeit muss noch gemacht werden

ips_tagesverbrauch-2

ips_tagesverbrauch-3

Hier fällt mir aber gerade auf das der Balken für Heute falsch ist. Das ist eigentlich der Balken für gestern

Ich vermute mal dass ich das problem in der diagrammeinstellung behoben bekomme indem ich den Wert von „0“ auf „-1“ setze…

Da isser wieder, der Wert :thinking:

Habe lange überlegt was damit diesmal gemeint sein könnte. Falls du den Zeitversatz im Diagramm meinst, dann musst du vorsichtig sein: der hat je nach dargestelltem Zeitraum unterschiedliche Auswirkung, versetzt also bei -1 nicht immer um einen Tag!

Ich würde das ohne Zeitversatz darstellen, um diesem Problem aus dem Weg zu gehen. Ob man den Nachtverbrauch von 19 Uhr bis 7 Uhr als aktuellen Tag (IPS Zeitstempel) oder als Vortag versteht, da gibt es ohnehin kein richtig oder falsch.

~~

Zu deinem Screenshot noch eine Anmerkung: dort hast du jeweils zwei Kopien des Zählerstandes um 19 Uhr und um 7 Uhr. Es würde genügen jeweils eine Variable mit dem Zählerstand um 7 und 19 Uhr zu benutzen, egal ob man die für Tag- oder Nachtberechnung benutzt.

Natürlich hast du wieder Recht.
Ich für mich persönlich fand es aber nachvollziehbarer wenn es jeweils für Tag/Nacht angelegt ist.

Zeitversatz von -1 habe ich auch gerade festgestellt das dies auch nicht zielführend war.
Also den Zeitversatz wieder =0

Wenn IPS mir den Nachtverbrauch aufgrund des Zeitstempels versetzen würde wäre das Logisch (noch nicht getestet)
Jedoch stehe ich Aktuell vor dem Problem das ich einen Zeitversatz im Tagesverbrauch habe.
Und das obwohl IPS ja am gleichen Tag loggt.

Bsp.
von 30.08.23 7.00 Uhr → 30.08.23 19.00 Uhr
Ergebnis wird mir für den 01.09.23 im Diagramm angezeigt
Das kann/darf ja nicht sein, für den 01.09.23 gibt es ja noch keine Daten die angezeigt werden können

hier mal der Auszug aus der CSV
ips_tagesverbrauch-csv

Bei deiner Darstellung ist vermutlich das Problem dass IPS den Mittelwert des Zeitraums 0 Uhr bis 24 Uhr berechnet und diesen darstellt. Im Ergebnis hast du dann einen Mix aus neuem und altem Tageswert. IPS weiß ja nicht dass dich nur der jeweils neue Wert um 19 Uhr interessiert und du nur diesen sehen möchtest.

Kannst du das Diagramm mal als Liniendarstellung mit Einstellung auf RAW versuchen, um den Zeitverlauf zu sehen? Dann sollte man um 19 Uhr der Sprung auf den neuen Wert sehen.

Hier passen die Eckpunkte

Ok, dann ist die Berechnung der Werte richtig und es ist ein Darstellungsproblem, weil IPS bei den Balken immer den Zeitraum 0-24 Uhr auswertet und deine zwei Intervalle anders liegen. Da bekommst du immer einen Mix aus zwei Werten angezeigt.

Eine Lösung dafür fällt mir nicht ein. Man könnte die Berechnungen jeweils um 23:59 in eine Variable schreiben, dann ist der Sprung zumindest synchron mit den IPS-Intervallen, aber im Diagramm würde man den Wert dann immer erst am Folgetag im Diagramm sehen (geschrieben um 23:59, dann konstant von 0 Uhr bis 23:59).

Oder du verabschiedest dich von der Idee eigener Zeiträume und belässt es bei der Berechnung der Verbräuche pro Kalendertag, ohne Unterscheidung nach Tag/Nacht.