Hallo,
ich suche gerade nach einer Lösung die eingespeiste bzw. bezogene Energie aus dem Netz im Rahmen einer Photovoltaikanlage zu berechnen und zu visualisieren. Basierend auf der eingespeisten / bezogenen Leistung würde ich gerne im angehängten Plot mittels der Integralfunktion die Energie berechnen. Problematisch wird das Ganze nun dahingehend, dass es Flächen im positiven (gelb markiert) als auch im negativen (orange markiert) gibt - daher die Frage: Kann mir die Integralfunktion beide Flächen berechnen oder gibt es eine andere (einfachere) Lösung, die ich aktuell nicht sehe ?
Ich hoffe meine Frage ist soweit verständlich ;)
Gruß & Danke
Mit userReadings, eins für Einspeisung, das enthält alle positiven Werte und 0 für alle negativen Werte und eins für Bezug, das enthält alle negativen Werte und 0 für alle positiven Werte. Die beiden userReadings kannst Du dann "integral" modifizieren, siehe http://fhem.de/commandref_DE.html#attributes
So etwa:
attr <devicename> userReading Einspeisung:<trigger> integral {ReadingsVal("$name","<readingsname>",0) > 0 ? ReadingsVal("$name","<readingsname>",0) : 0}
für Bezug müsstest Du den Vergleich ändern und für Beides die Namen anpassen.
Hallo Ellert,
die Verwendung von "integral" bei einem userreading habe ich an anderer Stelle schon erfolgreich im Einsatz.
Mein Problem an deinem beschriebenen Lösungsansatz ist mehr die Frage, wie ich alle negativen Werte auf "0" bekomme (quasi sollen alle negativen Werte "abgeschnitten" werden) ???
Zitat von: Ellert am 30 Juni 2016, 14:12:50
Mit userReadings, eins für Einspeisung, das enthält alle positiven Werte und 0 für alle negativen Werte und eins für Bezug, das enthält alle negativen Werte und 0 für alle positiven Werte. Die beiden userReadings kannst Du dann "integral" modifizieren, siehe http://fhem.de/commandref_DE.html#attributes
So etwa:
attr <devicename> userReading Einspeisung:<trigger> integral {ReadingsVal("$name","<readingsname>",0) > 0 ? ReadingsVal("$name","<readingsname>",0) : 0}
für Bezug müsstest Du den Vergleich ändern und für Beides die Namen anpassen.
Gerade gesehen, dass du während meines Beitrages deinen nochmals editiert hast :)
Super, das probiere ich später so mal aus - vielen Dank.
Ich passe so meinen Bezug/Lieferung mittels Userreading an:
Momentanleistung { if (ReadingsVal("stromZaehler","dir_total_feed",0) >0 ) {sprintf("%.0f",ReadingsVal("stromZaehler","power",0))} else {"0"} },
Momentanleistung_feed { if (ReadingsVal("stromZaehler","dir_total_feed",0) <0) {sprintf("%.0f",ReadingsVal("stromZaehler","power",0)*(-1))} else {"0"} }
Gruß
Tomy