Hallo Zusammen,
Dank der tollen Scripte von Marc und 66er, ist es mir gelungen, die aktuelle Leistung und den gesamten Energieverbrauch in meine CCU zu integrieren.
Nun möchte ich sehr gerne Euch allen meine kleinen Scripte zur Verfügung stellen, die zum einen den aktuellen Tagesverbrauch und zum anderen den Verbrauch von Gestern in eine Systemvariable schreiben.
Ich messe mit meinem Shelly den Verbrauch meiner Lüftungsanlage im Haus, aus dem Grund heißen die Variablen bei mir …_Lueftungsanlage_....
Zunächst müssen 3 Systemvariablen angelegt werden:
„Verbrauch_Lueftungsanlage_temp“ (in diese Variable wird jeden Tag um 00:01 der aktuelle Gesamtverbrauchswert des Shellys geschrieben, temp steht für temporär)
„Verbrauch_Lueftungsanlage_heute“ (Diese Variable zeigt den aktuellen Tagesverbrauchswert an)
„Verbrauch_Lueftungsanlage_gestern“ (Diese Variable zeigt den gestriegen Tagesverbrauchswert an)
Als erstes erstellt ihr ein Programm, dass täglich zum Zeitpunkt 00:01 aufgerufen wird.
Das Script dafür sieht wie folgt aus:
var a = dom.GetObject("Shelly_Verbrauch").Value();
dom.GetObject("Verbrauch_Lueftung_temp").State(a);
„Shelly_Verbrauch“ ist die Variable, die vom Shelly übergeben wird und bei mir alle 30s aktualisiert wird. Diese wird um 00:01 in die temporäre Größe "Verbrauch_Lueftung_temp" geschrieben.
Anschließend wird ein neues Programm erstellt, welches den aktuellen Tagesverbrauch ermittelt. Dazu muss die Zeitsteuerung als Bedingung gewählt werden. Das ganze muss ganztägig laufen und als Serienmuster im Zeitintervall aufgerufen werden. Ich habe hier 5 Minuten gewählt, Da könnt ihr euch einen Wert aussuchen. Je nach Gusto, wie oft der Tageswert aktualisiert werden soll.
Das Script dafür sieht wie folgt aus:
integer a = dom.GetObject("Shelly_Verbrauch").Value();
integer b = dom.GetObject("Verbrauch_Lueftung_temp").Value();
integer c = a-b;
dom.GetObject("Verbrauch_Lueftung_heute").State(c.ToString(2));
Hier wird eine Differenz aus dem aktuellen Wert der vom Shelly übergeben wird mit der Temporären Größe gebildet. Anschließend wird der Wert auf 2 Nachkommastellen gerundet und in die Variable "Verbrauch_Lueftung_heute" geschrieben.
Abschließend muss noch ein Programm erstellt werden, dass einmal täglich am Tagesende (23:59 Uhr) den Tagesverbrauchswert in den Verbrauchswert von gestern schreibt.
Das Script dafür sieht wie folgt aus:
var a = dom.GetObject("Verbrauch_Lueftung_heute").Value();
dom.GetObject("Verbrauch_Lueftung_gestern").State(a.ToString(2));
Anlag zum ersten Script wird hier des Tagesverbrauch in den Verbrauch für gestern geschrieben.
Achtung bei Stromausfall oder Netztrennung wird der Gesamtverbrauch im Shelly auf 0 gesetzt. D.h. der Shelly wird in diesem Fall den aktuellen Tageswert falsch berechnen. In dem Fall müsste die Scripte einmal von Hand ausgeführt werden.
Das gleiche gilt auch beim Erstellen dieser Scripte, da ja immer erst zum Tageswechsel die Systemvariablen mit sinnvollen Werten beschrieben werden.
So ich hoffe, dass irgendjemand etwas mit diesen kleinen Scripten anfangen kann.
Euch noch einen schönen 2. Advent.
Grüße Henning