NEWS
[GELÖST] Flot - Kurven "überlagern"
-
Hallo,
ich möchte die Kurven von meiner Solaranlage in Flot "nachbilden". Alles ist vorhanden allerdings wie überlager ich denn mehrere Kurven um diese farblich genauso darzustellen - sprich hier wird grün dargestellt, wann ich den Eigenverbrauch durch meine PV-Anlage selbst abdecke.
Die 5 Datenpunkte sind vorhanden bei mir im IoB.
Hier das Beispiel aus meinem Solarlog:

-
Wo ist das Problem?
Für jeden Datenpunkt eine Zeile und dort die Farbe definieren
Gruß
Rainer
-
Zum Stacken von Kurven habe ich mir im JavaScript-Adapter einfach mehrere Aufsummierungen der Basiswerte (z.B. Eigenverbrauch + Verkauf, Eigenverbrauch + Verkauf + Batterieladung usw.) angelegt und speichere die in eigenen Datenpunkten. Diese verwende ich dann in Flot.
-
ich glaube ich sehe erst jetzt was er will!
Bei Überlagerung zweier Kurven soll sich die Farbe ändern.
Das geht IMHO nicht.
Ich habe das anders gelöst, bin aber nicht zu Hause, und finde im Moment keinen Screenshot von mir im Forum.
Gruß
Rainer
-
~~<link_text text="https://uploads.tapatalk-cdn.com/201901 ... 23cc58.jpg">https://uploads.tapatalk-cdn.com/20190102/4c60978aceb6c042ff678492d723cc58.jpg</link_text>" />Und das rote oben ist gleichzeitig die Gesamtsumme aller darunter liegenden Kurven.~~
-
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: