NEWS
[GELÖST] Flot - Kurven "überlagern"
-
Ich glaube, das sind einfach getrennte Graphen: `
Nein, das ist:
@Segway:aus meinem Solarlog `
Da wird die Kurve grün, wenn die produzierte Leistung die verbrauchte überschreitet.
Gruß
Rainer
-
Da wird die Kurve grün, wenn die produzierte Leistung die verbrauchte überschreitet. `
Nein, die grüne Kurve muss der <u>kleinere Wert der beiden</u> sein, siehe mein Post. Dann ist der Teil des Verbrauchs grün, der von der produzierten Leistung abgedeckt wird - wie im Screenshot.
-
Tja,
ich weiss auch nicht wie das zu lösen ist.
Was definitiv NICHT geht, ist einfach die Kurven zu überlagern und dann anders farbig es darzustellen. Warum geht das nicht ? Naja, wenn ich
erzeugter Strom - (aktueller Stromverbrauch)*-1
nehme, dann ist die Kurve nicht NULL sondern immer dann wenn KEIN Strom produziert wird so groß wie der aktuelle Verbrauch –> diese müsste aber dann bei NULL sein (siehe Dateien 1 & 2).
Geht dann nur per neuem Datenpunkt oder ? Aber wie, weil bis zum verbrauchten Strom ist es grün und ab da ist es dann gelb ? grübelgrübel.
1043_datei2.jpg
1043_datei1.jpg -
Ich habe es damals so gelöst:

So wie es beim Solarlog aussieht ist es natürlich schöner
Gruß
Rainer
-
Zur Klärung:
Du brauchst für den grünen Abschnitt einen zusätzlichen Datenpunkt (ich nenne ihn mal Eigenverbrauch). Diesen musst du per Skript aus dem Verbrauch und der Leistung berechnen - außer das geht irgendwie im Graph-Tool. Und ich meine tatsächlich nicht Differenz oder ähnliches, sondern den kleineren der beiden Werte (Math.min)!
Ungetestet, sollte aber in etwa stimmen:
const idVerbrauch = "dp.fuer.verbrauch"; const idLeistung = "dp.fuer.leistung"; const idEigenverbrauch = "eigenverbrauch"; createState(idEigenverbrauch, 0, { name: "Eigenverbrauch", unit: "W", type: "number", read: true, write: false, }); let verbrauch = 0; let leistung = 0; function eigenverbrauchBerechnen() { setState(idEigenverbrauch, Math.min(verbrauch, leistung)); } // Bei Änderungen aktualisieren on(idVerbrauch, obj => { verbrauch = obj.state.val; eigenverbrauchBerechnen(); }); on(idLeistung, obj => { leistung = obj.state.val; eigenverbrauchBerechnen(); }); // einmalig zu Beginn aktualisieren verbrauch = getState(idVerbrauch).val; leistung = getState(idLeistung).val; eigenverbrauchBerechnen(); -
Um Kurven in Flot zu überlagern muss die Kurve, die am weitesten vorne (oben) liegen soll, als letzte in der Liste der Datenpunkte sein.
Gruß
Rainer
-
Um Kurven in Flot zu überlagern muss die Kurve, die am weitesten vorne (oben) liegen soll, als letzte in der Liste der Datenpunkte sein. `
Ja das habe ich auch vorhin festgestellt. Dazu wäre es aber sehr nützlich die Reihenfolge auch ändern zu können. Ansonsten musste die Ganzen Datenpunkte löschen oder aber neu überschreiben. Reihenfolge ändern wäre NICE :-)
Zur Klärung:
Du brauchst für den grünen Abschnitt einen zusätzlichen Datenpunkt (ich nenne ihn mal Eigenverbrauch). Diesen musst du per Skript aus dem Verbrauch und der Leistung berechnen - außer das geht irgendwie im Graph-Tool. Und ich meine tatsächlich nicht Differenz oder ähnliches, sondern den kleineren der beiden Werte (Math.min)! `
Mhhh,
das schaue ich mir mal an.
Erste Idee war ein Script zu erstellen und einen neuen Datenpunkt zu kreieren wo nur so lange reingeschrieben wird bis
Erzeugung - Verbrauch = 0
ist, also keine Minuswerte zu gelassen werden. Alternativ einfach doch reinschreiben und im Flot nur immer bis 0 anzeigen lassen (Ist nur später für Weiterberechnungen nicht optimal)?
-
Du brauchst für den grünen Abschnitt einen zusätzlichen Datenpunkt (ich nenne ihn mal Eigenverbrauch). Diesen musst du per Skript aus dem Verbrauch und der Leistung berechnen - außer das geht irgendwie im Graph-Tool. Und ich meine tatsächlich nicht Differenz oder ähnliches, sondern den kleineren der beiden Werte (<u>Math.min</u>)! `
BAEHM !
Das wars –> Datenpunkt angelegt --> Script angepasst und sich freuen (siehe Bild - ganz rechts)
Math.min kannte ich noch nicht - wieder was gelernt. Nun noch bisschen aufhübschen die Grafik und wieder ein Punkt weniger auf meiner Liste !
DANKE !!!

-
Super!
Muss ichheute abend auch mal ran ;-)
Gruß
Rainer
-
Irgendwie genau das, was ich geschrieben/gemeint habe. [emoji56]
-
Er hat doch nur gemeint, dass er das geschrieben hätte
@Stabilostick:was ich geschrieben/gemeint habe. `
oder so :lol: :lol: :lol:
-
In jedem Beitrag ist irgendwo die Wahrheit drin; und das Gesamtpaket ergab dann zumindest für mich die Erleuchtung und Lösung.
Leider mit dem bitteren Beigeschmack, dass ich nun einen Punkt auf meiner Liste streichen konnte ABER durch die Anregungen der ganzen Beiträge ich bestimmt auf 5 neue Ideen gekommen bin - Liste länger geworden :o :shock: . Man man man so wird das nix mit ISCH HABE FERTISCH :lol: :lol: :lol:
-
Falls Du ihn noch nicht kennst, kannst Du Dir den statistics-Adapter anschauen. Tolle Sache und weitere 10 Ideen dann. [emoji56]