Stromverbrauch messen mit Shelly 4pm

Guten Morgen,

ich möchte gerne meinen Stromverbrauch von mehreren Shellys messen und bearbeiten.

Ich habe das Problem, dass sobald ein Shelly stromlos ist verliert er die Gesamtmenge des Verbrauchs im IP-Symcon.

Jetzt habe ich mir über legt eine neue Variable anzulegen und dort den Verbrauch mitzuschreiben, so das es egal ist ab der Orginalstand auf 0 oder einen anderen Wert hat. Ich möchte auch die möglichkeit haben den Zählerstand zu reseten.

Daher meine Frage, hat schonmal jemand so etwas umgesetzt oder denke ich da komplett falsch?

Mein Ansatz wäre ein ausgelöstes Ereignis zu erstellen mit dem mathematischen Operator addieren +0,1.

Vielleicht hat jemand eine bessere Idee.

Gruss Jan

Nimm einfach das Modul „Energiezähler“ aus dem Modulstore. Dieser Zähler ist dann das, was dich interessiert und der Shelly ist nur die Eingangsquelle. Der Energiezähler sammelt fortlaufend die Werte. Damit ist es egal, ob der Shelly auf 0 zurück fällt oder auch mal ausgetauscht wird.

@Jan
genau ! Die Werte werden dann aus dem Archiv errechnet, vorausgesetzt, du loggst die Werte

Morgen,

der shelly em hat einen persistenten Wert.
Der bleibt erhalten.

Bei allen anderen shelly Geräten sieht das anders aus.
Du prüfst bei Wertänderungen ob der Wert kleiner als der letzte ist, je nachdem kannst du den Wert dann mathematisch korrekt addieren.

Wobei mir aufgefallen ist, wenn du ihn als Zähler loggst, ist es egal wie oft er nullt. Die Graphen zeigen immer korrekt die Verbräuche an.

Beste Grüße
Paul

Danke, das Modul habe ich getestet, ist super aber etwas zu mächtig für meine Anforderung

Das finde ich gut, nur die Frage ist ist mein Weg der richtige oder zu kompliziert?

Würde schon passen.
Aber warum nicht die Variable als Zähler loggen? Alles andere macht IPS.
Man kann die Art des Loggings auch im Betrieb umstellen ohne die Werte zu verlieren.

Das ist natürlich richtig, aber für meine Anwendung möchte ich gerne den Zählerstand manuell zurücksetzen. Ich weiß das ist etwas speziell.

Naja - man könnte ja entweder das Archiv löschen oder duplizieren? So beginnts auch wieder bei null.
Oder man dupliziert die Variable bei Änderung und archiviert beide.
Mit Variable A hast du die Gesamtsumme, mit Variable B - welche du löschen kannst - z.b. die Teilsumme nach Nullstellung.
Alles ohne selbst rechnen zu müssen.

Ja, so möchte ich es gerne machen, nur leider klappt das nicht so richtig . Wie würdest Du das duplizieren ohne das der Wert immer gelöscht bzw, auf den originalen Wert zurück geschrieben wird?

Bei mir gehts um ein anderes Thema, aber ich geb dir mal ein paar Tipps evtl. kommst du damit weiter.
Ich hab einen Shelly welcher mir einen Wert liefert (Variable Energie).
Diese wird archiviert - mit Standardaggregation.
Somit habe ich im Webfront eine Kurvendarstellung.
Damit ich aber auch einen Zähler bekomme dupliziere ich diese Variable auf eine neue (Variable == „Total Zähler“).
Auch diese wird archiviert, allerdings mit Aggregation = Zähler.
Die Synchronisation hängt als Ablaufplan unter der Variablen „Total Zähler“ und hat als Auslöser die Bedingung „Änderung der Variablen Energie“.
Und als Aktion ganz einfach „Ziel == Total Zähler“, setze auf Wert von „Energie“.

Ob du dann den Inhalt des 2. Archivs irgendwann mal auf 0 setzt (kleines Script oder Befehl) das bleibt dir überlassen. Aber damit wäre deine Anforderung erfüllt.

Hej habre,

das habe ich umgesetzt, aber wenn ich den Totalzähler auf „0“ setzt springt er bei der nächsten Aktion wieder auf den Gesamtverbrauch zurück, und auch bei „0“ Stellung des Shellys geht der Zähler auch auf „0“ zurück. Ich möchte ja das er dann einfach bei „0“ startet und hochzählt.
Also guter Ansatz, aber noch nicht das richtige, diesen Zusatand habe ich immer, egal was ich einrichte, das ist mein Problem.

Das werden wir auch noch finden.
Wie löscht du denn den Totalzähler ?

im Moment lösche ich den Zähler noch in der Verwaltungskonsole. Ich habe es zumindest mal so hinbekommen, dass ich durch die Addierung jeweils bei Änderung eine 1 addieren kann, das funktioniert. es wird auch nicht zurückgesetzt. :wink:
Leider kommen immer unterschiedliche Werte beim Shelly raus. Ich benötige also das Delta zwischen dem letzten und dem neuen Stand. Diesen muss ich dann addieren. Ich denke ohne ein php Skript wird es wohl nicht gehen. Die Werte kann ich eigentlich aus dem Archiv nehmen, oder? Hier muss ich mir noch ein paar Gedanken machen. Oder weisst Du einen einfacheren Weg, den ich nicht sehe.

Hallo nochmal, nach einigen Test und Versuchen komme ich auch nicht weiter. Ich komme einfach nicht auf den korrekten Wert, hat noch jemand eine Idee, bzw. Hilfestellung?

Gruss Jan

Hej nochmal, ich bin etwas weitergekommen, leider bekomme ich durch meine Abfrage nur den letzten Wert aus dem Archiv, aber ich bräuchte einen Wert davor.
$Wert = AC_GetLoggedValues(Archiv, Variable, 0, 0, 1)[0][‚Value‘];
echo $Wert;

Weiss jemand wie ich an den Wert davor komme?