Bei der Strommessung meine Waschmaschine sieht es ähnlich abstrus aus. Da wird um 22:00 ne 0 in die Datenbank geschrieben und am nächsten Tag um 17:00 wieder gewaschen. Auf dem Plot scheint dann die Leistung kontinuierlich von 17-22:00 zu steigen was natürlich Käse ist.
Ankündigung
Einklappen
Keine Ankündigung bisher.
SQLite Plugin überarbeitet (in Release 1.1)
Einklappen
X
-
Ich möchte einen Mangel in der Datenreihe nicht unbedingt durch eine andere Darstellung kaschieren. Eine stetige Funktion sollte als eine solche darstellbar sein. Sonst haben Linienplots ausgedient. Es ist für mich wichtig, dass transiente Prozesse (Abtauen des Verdampfers, Außen-PM an/aus, etc.) im Plot dargestellt werden können, damit ich ggf. eine Häufung o.ä. auf einen Blick erkennen kann, ohne in irgendwelchen Datentabellen wühlen zu müssen. Es wäre nett, wenn es eine Option gäbe, die Daten nicht so stark komprimieren zu lassen. Oder bricht die DB-Performance so stark ein?
Übrigens, meine Datenbank ist wieder um fast 1 MB geschrumpft.
Kommentar
-
Hi,
dadurch wird nichts kaschiert. Dadurch wird der jeweils gelieferte Wert abgebildet. Das bietet sich bei den Werten an die sich nicht stetig ändern.
Per default fragt die Visu 100 Werte für den Plot an. Dabei werden 100 Zeitfenster gebildet. Für jedes dieser Fenster wird maximal ein Wert zurückgeliefert.
Wenn mehrere Werte in dem Fenster liegen, werden diese entsprechend der gewünschten Art (avg, min, max) aggregiert. Wenn kein Wert in dem Zeitfenster liegt, wird kein Wert zurück gemeldet.
Und ja, ich denke ein Pi bzw. die SD ist überfordert wenn man die Daten nicht so stark komprimiert. Ich denke, abgesehen von der Phase beim packen, ist die Komprimierung auch nicht so stark. Dich trifft wahrscheinlich eher die Limitierung durch die 100 Werte. Wenn Du die Werte erhöhst könnte Dir evtl. die SD im Pi als Flaschenhals fungieren.
Bis bald
Marcus
Kommentar
-
Hi Marcus,
wie man in den Bildern sieht, war der prinzipielle Kurvenverlauf mit der alten sqlite-Version anders. Denn ich habe Plots schon lange nicht mehr überarbeitet. Daher möchte ich nicht an den Symptomen herumdoktern.
Das bietet sich bei den Werten an die sich nicht stetig ändern.
Wenn du eine Möglichkeit siehst, das Kompressionsverhalten zu "verschönern", mache ich eine Aufzeichnung und Datenanalyse am Wochenende. Sonst muss ich wohl auf die alte DB-Version umsteigen und mit 25 MB pro Monat leben.
Gruß
toggle
Kommentar
-
Zitat von stromie Beitrag anzeigenHi
Erhöht mal die Werte für den Plot. Bei meiner Heizung waren 100 zu wenig. Da sah der Plot auch seltsam aus. Ich Frage jetzt einfach viel mehr an und der Plot ist plausibel.
Kommentar
-
Das Problem scheint mir ein anderes.
Das item zählt ab der vollen Stunde jede Minute von 30 eins runter. Zur Halben Stunde verbleibt der Wert auf 0 bis wieder mit 30 begonnen wird und runter gezählt wird. Eigentlich sollte sich ein "Sägezahn" mit Zwischenraum bilden. Statt dessen erhält man eine Zick-Zack-Linie.
Das halte ich einfach für falsch.
Code:[sql] type = num sqlite = yes eval_trigger = minute.since.hour eval = 30 - sh.minute.since.hour() if (sh.minute.since.hour() < 30) else 0
Code:{{ plot.period('p1','sql', 'max', '4h') }}
Gruß MirkoAngehängte DateienUmgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
Hallo Mirko,
Die Darstellung passt aus meiner Sicht zu dem, was Marcus zur Datenbank gesagt hatte: die Daten werden heruntergezähl, das sieht man. Dann bleibt der Wert 0 in der DB. Die werden nicht immer wieder abgespeichert, weil sie sich ja nicht ändern. Dann kommt der Sägezahn wieder neu nach 30 Minuten und beginnt von oben. Plot verbindet dann die beiden Punkte. Das sieht dann so aus, als würde die Kurve mit einer Steigung nach oben laufen. Wenn du die übertragenen Werte von smarthome nach smartvisu anschaust, dann wirst unwahrscheinlich keine Datenpunkte während dem aufsteigenden Ast bemerken.
Wenn du aus die Darstellung step wählst, wirst du den Sprung nach oben sehen.
Michel
Kommentar
-
Das dieses Verhalten auftreten wird war mir klar - darüber wundere ich mich auch nicht.
Aber:
Ein Diagramm zeigt das Verhältnis von 2 Größen zueinander. In diesem Falle den zeitlichen Verlauf (x) der Größe (y).
Das was hier passiert ist mathematisch einfach falsch. Um 19:40 war y auf keinen Fall 12 sondern 0. Damit ist das Diagramm eigentlich wertlos.
Auf stairs zu wechseln ist doch da nicht der richtige Weg.
Ich hoffe es fühlt sich niemand persönlich angegriffen - versteht das einfach als konstruktive Kritik. Ansonsten mag ich sh.py ja sehr. Aber so ein Diagramm würde ich keinesfalls in MEINE Visu einbauen - entweder richtig oder gar nicht.
Gruß MirkoUmgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
Hi Marcus,
angenommen, du hattest einen Ball und möchtest wieder so einen haben. Jemand versucht dir aber stattdessen einen Würfel schmackhaft zu machen. Würdest du darauf eingehen?
So ist es ungefähr mit den Stairscharts. Ich möchte keine Kanten bei stetigen Funktionen wie Temperatur, Energieverbrauch, etc. sehen. Ich wiederhole es nochmal - mit Stairscharts kaschiert man Daten-Artefakte, die es früher nicht gab. Und schöner wird diese Darstellung keineswegs.
Gruß
toggle
Kommentar
-
Hallo Toggle,
ich versuche Dir nichts schmackhaft zu machen. Abgesehen von Nachfragen, was habe ich davon das Du das Plugin einsetzt?
Das Backend wird normalerweise zyklisch oder bei Wertänderungen aktualisiert. Diese Werte wandern normalerweise* 1:1 in die DB.
Bei dem alten Plugin wurden die Werte bei Änderungen und zusätzlich dazu zyklisch in die DB geschrieben.
Das neue ist intelligenter und speichert weniger Punkte ohne Informationen zu verlieren. Im Gegenteil es ist sogar besser, da keine "falschen" Information gespeichert werden. z.B. bei Temperaturwerten die du alle fünf Minuten geschickt bekommst.
Angenommen du nimmst das alte Plugin und du würdest es jede Sekunde den jeweils vorliegenden Wert in die DB schreiben lassen. Damit hast Du ja eine sekundliche Auflösung der Daten. Es würden dann aber alle deine line-Plots wie stair-Plots aussehen. Und du könntest nichts am aussehen verändern.
Das Ergebnis entspricht damit ungefähr dem neuen Plugin mit einem stair-Plot.
Für sich lineare Änderungen (Temperature, Stromverbrauch insgesamt) kannst Du das bei dem neuen Plugin aber einen line-Plot nehmen, der die Änderungen wesentlich akkurater als das alte Plugin darstellt.
Sollten dir Datenpunkte fehlen musst die halt die Auflösung in der Visa erhöhen, also mehr als die 100 Punkte abfragen. Davon ausgenommen sind die * Lücken.
Ich bin fest davon überzeugt das das neue Plugin mathematisch alles richtig macht. Wenn jemand ein Problem mit der Darstellung hat, muss das in der Visu gefixt oder angepasst werden.
Wenn es nachweislich ein Problem in der Speicherung gibt, bin ich gerne bereit diese zu fixen. Der Nachweis funktioniert aber nicht über: früher sah es anders aus, ich will es wieder wie früher. Früher ist nicht alles besser gewesen.
Bis bald
Marcus
* Nicht während der Packphase, oder wenn es sehr viele Änderungen innerhalb kurzer Zeit gibt.
P.S. ich werde hier keinen weiteren Erklärungsversuche unternehmen.
Kommentar
-
Marcus,
ich freue mich sehr darüber, dass es smarthome.pi und Plugins gibt, die gepflegt und aktualisiert werden.
Aber ich kann deine Meinung nicht teilen, dass alles in Ordnung ist. JuMi hat es doch experimentell belegt, dass man nicht das zurück bekommt, was man abgespeichert hat. Ich habe das Gefühl, dass dieser Nachweis nicht gut genug ist. Denn ihm wurde auch nahe gelegt Stairs zu benutzen.
Stetige Funktionen können auch Phasen haben, in denen der Wert konstant bleibt. Um solche Phasen in der DB korrekt abzubilden, muss man einen Wert am Anfang einer solchen Phase und den gleichen Wert am Ende speichern. Wenn der gleiche Wert am Ende fehlt, wird eine Erhöhung der Visu-Auflösung nichts bringen.
Gruß
toggle
Kommentar
Kommentar