Hey Leute,
dank der tollen Scripte hier im Forum von 66er und MarcR sind wir ja in der Lage sämtliche Leistungs- und Verbrauchswerte der Shellys in die Homematic zu übertragen.
Leider ist es ja so, dass bei Stromausfall am Shelly die Verbrauchswerte wieder genullt werden. Für eine Überwachung seiner Verbrauchswerte ist das natürlich suboptimal. Daher habe ich ein Script geschrieben, welches dieses Problem löst und die Verbrauchte Energie speichert und sobald der Shelly wieder am Netz ist und neue Werte liefert, diese aufaddiert.
Was brauchen wir.
2x Systemvariablen
1x Programm
1x vorhandene Systemvariable
Ihr könnt die Variablen natürlich umbenennen, müsst dann jedoch in den Scripten diese anpassen
1.Systemvariablen die angelegt werden muss:
"Shelly_Verbrauch_Geschirrspueler_lastcall" als Zahl in kWh
Diese Variable wird am Ende des Scripts mit dem aktuellen Verbrauchswert des Shellys beschrieben.
2.Systemvariablen die angelegt werden muss:
"Shelly_Verbrauch_Geschirrspueler_gestemp" als Zahl in kWh
In dieser Variable wird nach dem durchlaufen des Programmes, die jemals verbrauchte Energie stehen.
Systemvariable die vorhanden sein sollte:
"Shelly_Verbrauch_Geschirrspueler"
Diese Variable wird mit den Scripten von 66er in die Homematic übertragen, diese ist zwingend erforderlich.
var a = dom.GetObject("Shelly_Verbrauch_Geschirrspueler").Value();
var b = dom.GetObject("Shelly_Verbrauch_Geschirrspueler_gestemp").Value();
var c = dom.GetObject("Shelly_Verbrauch_Geschirrspueler_lastcall").Value();
var d= a-c;
if (d>=0)
{d=d;}
else {d = 0;}
if(a>b)
{b = a;}
if(b>a & a>0 & d>0)
{ b = b + d;}
dom.GetObject("Shelly_Verbrauch_Geschirrspueler_gestemp").State(b);
dom.GetObject("Shelly_Verbrauch_Geschirrspueler_lastcall").State(a);
Alles anzeigen
Wenn ihr das Programm zum ersten Mal ausführt wird nur der aktuelle Wert des Shellys in eure Systemvariable geschrieben und wächst analog zum Wert des Shellys mit jedem Programmaufruf.
Kommt es jetzt zum Stromausfall, ist euer Wert des Shellys kleiner als der Wert eures Gesamtverbrauchs und somit wird dann
bei jedem Funktionsaufruf die Differenz aus dem aktuellen Wert des Shellys mit dem Wert beim letzten Funktionsaufruf zu dem Gesamtverbrauch addiert.
Das Programm sieht wie folgt aus:
Hier wird auf die Variabel die schon vorhanden ist auf Aktualisierung größer gleich 0 kWh getriggert. Immer wenn der Wert vom Shelly abgerufen wird, wird auch euer Gesamtenergieverbrauch berechnet.