Shelly und Zähler

Hi!

Ich benutze für mein Balkonkraftwerk eine Shelly zum aufzeichnen der Daten. Leider setzt das Teil den Zähler nach einem Stromausfall auf 0 zurück, was natürlich in den geloggten Daten bescheiden ist. Gibt es eine Möglichkeit hier den Zähler weiterzählen und ihn nicht wieder bei der 0 aus der Shelly beginnen zu lassen?

Ich nutze dazu den Energiezähler aus dem Module-Store. Somit kann ich durchaus auch mal den Shelly austauschen und der Zähler zählt immer das, was er zum Zählen geliefert bekommt.

Möchte das ebenso mit einem Shelly plug S machen. Ebenso eine kleine Anlage. Leider noch nicht montiert :wink:
Aber die Berechnung hab ich schon. Eventuell müsstest du noch eine multiplikation mit -1 einbauen. Das weiß ich aktuell noch nicht. Aber die Logik funktioniert.

<?php
//Gesamtwert und Tageswert berechnen
$archivID=46307;
$energiekwhID=51463;
$kwhgesamtID=20902;
$kwhgesamtaltID=25555;
$kwhtagID=33723;
$leistungwID=26074;
$leistungwminID=20154;
$messzeitpunktminID=41608;
$leistungwmaxID=12346;
$messzeitpunktmaxID=32210;
$leistungwdurchschnittID=45320;
$erzeugtkwhdurchschnittID=38409;

$wertneu=getvalue($energiekwHID);
$wertalt=getvalue($kwhgesamtaltID);
if ($wertalt>$wertneu) $wertalt=0;
//Tageswert
setvalue($kwhtagID,getvalue($kwhtagID)+$wertneu-$wertalt);
//Gesamtwert
setvalue($kwhgesamtID,getvalue($kwhgesamtID)+$wertneu-$wertalt);
setvalue($kwhgesamtaltID,$wertneu);

//Minimumleistung
if (getvalue($leistungwminID) == 0)
{
    setvalue($leistungwminID,getvalue($leistungwID));
}
else
{
    setvalue($leistungwminID,min(getvalue($leistungwminID),getvalue($leistungwID)));
}
setvalue($messzeitpunktminID,ips_getvariable($leistungwminID)["VariableChanged"]);

//Maximalleistung
setvalue($leistungwmaxID,max(getvalue($leistungwmaxID),getvalue($leistungwID)));
setvalue($messzeitpunktmaxID,ips_getvariable($leistungwmaxID)["VariableChanged"]);

//W Durchschnitt berechnen
$wattwerte=AC_GetLoggedValues($archivID,$leistungwID, strtotime("today 00:00"), time(), 0);
$anzahl=0;
$gesamt=0;
foreach($wattwerte as $watt)
{
    $gesamt=$gesamt + $watt["Value"];
    $anzahl++;
}
if ($anzahl>0) setvalue($leistungwdurchschnittID,$gesamt/$anzahl);

//kWh Durchschnitt berechnen
$kwhwerte=AC_GetLoggedValues($archivID, $kwhgesamtID, strtotime("today 00:00"), time(), 0);
$anzahl=0;
$gesamt=0;
foreach($kwhwerte as $kwh)
{
    $gesamt=$gesamt + $kwh["Value"];
    $anzahl++;
}
if ($anzahl>0) setvalue($erzeugtkwhdurchschnittID,$gesamt/$anzahl);

Ich berechne auch noch den Tageswert, der um Mitternacht auf 0 gestellt wird. Ebenso aus dem Archiv einen täglichen Durchschnitt und Min/Max Werte. Ob ich das letztendlich alles drinnen lasse, kann ich noch nicht sagen. Das sehe ich erst später. Was du willst ist ganz am Anfang.
Das Skript wird bei Änderung der Leistung (W) oder Energie (kWh) aufgerufen.

Danke für die Tipps, werde ich umgehend testen!

Ok, heute wurde die PV montiert und auch der Shelly. Er liefert auch beim Einspeisen positive Werte :wink: