FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: stefanru am 18 Februar 2021, 13:39:15

Titel: [Gelöst] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 18 Februar 2021, 13:39:15
Hi,

ich habe ein seltsames Problem mit meinem TabletUI und dem Charts Widget.
Bei mehreren Charts kann ich das Phänomen beobacht.
Der Chart wird geladen und korrekt dagestellt. Sieht Strom_ok und dann ändert er sich und zeigt nur noch Striche. Siehe Strom_kaputt.
Das passiert nicht immer. Manchmal ca nach 2 Sekunden, manchmal nach dem Wechsel von Seiten.
Ich habe das Verhalten bei mehreren Charts.
Regenwasser, Heizöl, Strohm ...

Meine Datenquelle ist logdb.

Hab schon an allen möglichen Parametern des Charts gedreht. Ist aber leider nicht besser geworden.
Im Developer Trace des Browsers sehe ich leider keine Auffälligkeit.

Ich hoffe jemand hat so etwas schonmal gesehen und hat eine Idee.

Hier mal der FTUI ausschnitt für die 2 Graphen im Bild:

<li data-row="2" data-col="1" data-sizex="11" data-sizey="4" class="semitransparent">
  <header>Stromzähler Tageschart</header>
<div data-type="chart"
    data-device="stefan.stromzaehler"
data-get="state"
data-logdevice="logdb"
data-logfile="history"
data-scrollgroup="1"
data-cursorgroup="1"
data-columnspec='["stefan.stromzaehler:power","walter.stromzaehler:power"]'
data-style='["ftui l2fill","ftui l5fill"]'
data-ptype='["lines","lines"]'
data-uaxis='["primary","primary"]'
data-legend='["Stefan Watt","Walter Watt"]'
data-yunit=" Watt"
data-minvalue="0"
data-maxvalue="auto"
data-height="99%"
data-width="99%"
data-yticks="auto"
data-nofulldays="true"
data-xticks="auto"
data-crosshair="true"
data-showlegend ="true"
class = "big"
style = "font-size:900; font-weight:900;" >
</div>

<li data-row="6" data-col="1" data-sizex="11" data-sizey="3" class="semitransparent">
  <header>Stromzähler Tagesverbrauch pro Monat</header>
<div data-type="chart"
    data-device="stefan.stromzaehler"
data-get="state"
data-logdevice="logdb"
data-logfile="history"
data-scrollgroup="2"
data-cursorgroup="2"
data-columnspec='["stefan.stromzaehler:total_consumption::delta-d:$val=($val/1000)", "walter.stromzaehler:total_consumption::delta-d:$val=($val/1000)"]'
data-style='["ftui l2fill","ftui l5fill"]'
data-ptype='["bars"]'
data-uaxis='["primary"]'
data-legend='["Stefan kWh", "Walter kWh"]'
data-daysago_start="30"
data-yunit=" kWh"
data-yticks_format="#.#"
data-minvalue="0"
data-maxvalue="auto"
data-height="99%"
data-width="99%"
data-yticks="auto"
data-minvalue_sec="auto"
data-maxvalue_sec="auto"
data-nofulldays="true"
data-xticks="auto"
data-crosshair="true"
data-showlegend ="true"
class = "big"
style = "font-size:900; font-weight:900;" >
</div>
</li>



P.S. In der Entwickler Console sehe ich dass die Charts sehr oft aktualisiert werden wegen:
Function: widget_chart.update > Update triggered with: walter.stromzaehler:power
Ich habe aber power gar nicht in data-get als Aktualisierung trigger gesetzt.
Habe extra state genommen da der nicht aktualisiert wird.

Gruß und Danke,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 18 Februar 2021, 19:47:27
Kannst Du noch sagen, mit welchem Browser das auftritt?
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 18 Februar 2021, 23:43:27
Hi Eki,

klar ich verwende verschiedene Chrome Browser auf dem Computer und SmartPhone und Fully auf dem Tablet.
Überall ist der Effekt zu sehen.

Hab jetzt auch mal Internet Explorer und Edge probiert. Überall das selbe Verhalten.

Gruß,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 22 Februar 2021, 13:52:32
Kleiner Zwischenstand:

P.S. In der Entwickler Console sehe ich dass die Charts sehr oft aktualisiert werden wegen:
Function: widget_chart.update > Update triggered with: walter.stromzaehler:power
Ich habe aber power gar nicht in data-get als Aktualisierung trigger gesetzt.
Habe extra state genommen da der nicht aktualisiert wird.


Aktuell ist das folgendermaßen: Wenn entweder ein Event kommt, der auf data-device und data-get passt, oder wenn ein Event kommt, der auf data-logdevice und data-get passt, dann wird ein refresh gemacht.

Was das komische Verhalten betrifft, so kann ich das aktuell unter verschiedenen Browsern unter Windows bei mir nicht nachstellen (tritt nicht auf). Unter iOS habe ich so etwas auch schon mal beobachtet, ist aber schwieriger zu debuggen (ich habe keinen MAC, und müsste daher erst mal Safari installieren), Android Devices sind für mich eher noch schwieriger, da ich mir so was erst mal besorgen müsste. Ich versuche das weiter nachzustellen, kann aber etwas dauern.
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 24 Februar 2021, 14:39:44
Könntest Du mir einfach mal, wenn es auftritt, den kompletten generierten HTML Code aus der entwickler Console (per PM) schicken und als Vergleich auch mal den "Gutfall".
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 24 Februar 2021, 18:45:12
Hi Eki,

erstmal vielen, vielen Dank das du bereit bist dir mein Problem anzuschauen.

Ich habe aus den Entwicklertools im Chrome die HTML Seite gezogen.

Meistens tritt der Fehler kurz nach einem Seitenwechsel auf.
Somit habe ich bei dem defekten einmal auf die Ölstandsanzeige und wieder zurück zur Stromanzeige gewechselt.

Ich habe die beiden Files auch mal verglichen. Was mir auffällt ist das der Graph für stefan.stromzaehler im Fall das es Defekt ist doppelt so viele Daten anzeigt.
Das ist schon wirklich sehr sehr viel.

Im ok Fall ist die Zeile für den Graph schon
167815 Zeichen lang
Im defekt Fall sind es dann
321881.

Das ist seltsam. Die schiere Menge erstaunt mich auch.
Wenn der Fehler auftritt bleiben alle Graphen ungefüllt.

Im Anhang eine ZIP Datei mit 2 Files:
Graph_ok und Graph_defekt.

Für PM ist das einfach zu groß.
Wahrscheinlich warst du darauf bedacht wegen persönlicher Daten.
Ich habe das ZIP File verschlüsselt und schicke dir per PM das Passwort.

Gruß und vielen Dank,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 25 Februar 2021, 08:10:56
Kannst Du mal mit der angehängten Version testen.
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 26 Februar 2021, 14:14:08
Hi Eki,

wow, der Hammer!
Keine Probleme mehr, es geht wunderbar.
Was war denn das Problem?

Ich danke die 1000 mal!

Gruß,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 26 Februar 2021, 14:57:18
Das Problem war, Folgendes: Wenn zu viele Events von FHEM kamen, die jedesmal ein Neuzeichnen angestoßen haben, dann kam das Widget beim Zeichnen durcheinander. Es wurde gerade noch gezeichnet (sprich im HTML rumgebaut) und währenddessen kam der nächste Anlauf, der dann auch im HTML rumbaut, das erzeugt eine Race Condition und kann nicht gut gehen. Dass es nicht immer auftrat, lag eben daran, wie lange das System zum Zeichnen brauchte und wie häufig die Events von FHEM kamen.
Ich habe das jetzt so abgefangen, dass, wenn ein neuer Event kommt, während noch gezeichnet wird, dieser einfach ignoriert wird (ist vielleicht nicht optimal, aber das Beste was mir eingefallen ist). Erst wenn er mit dem aktuellen Neuzeichnen fertig ist, werden wieder Events angenommen.
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 26 Februar 2021, 19:27:46
Hi Eki,

perfekt.
Ja das erklärt es.
Meine Stromzähler senden 2 sekündlich ihren Status. In die DB wird alle 30 Sekunden gelogged. Das ist mein log device.
Deshalb wollte ich mit data-get eigentlich auf ein anderes reading. Mir würde ein Update alle 5 Minuten locker langen.
Lieder hat das data-get nicht geholfen.
Du hattest ja schon erklärt dass data-logdevice hier auch eine Rolle spielt.

Ich finde deine Lösung gut.
Eventuell könnte man die Last weiter Senken wenn man ein Attribute min-update-time oder so hätte.
Ich weiß  aber nicht ob so etwas im TabletUI abbildbar ist...

Danke dir,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 01 März 2021, 16:45:41
Falls es wirklich stabil läuft, setzt Du den Thread dann noch auf [solved] und ich werde dann die nächsten Tage die neue Version entsprechend freigben.
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 02 März 2021, 20:31:39
Klar gerne, Funktioniert nach wie vor 1A :-)

Dir nochmals vielen Dank!
Titel: Antw:[SOLVED] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 06 März 2021, 19:30:32
Hi,

habe heute ein Update gemacht und der fix ist wieder weg.
Hast du ihn noch nicht bereitgestellt?

Gruß und Danke,
Stefan
Titel: Antw:[SOLVED] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 06 März 2021, 19:58:41
Nein, bin noch an einer anderen Sache dran. Anfang nächster Woche.
Titel: Antw:[SOLVED] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 06 März 2021, 20:13:37
Alles klar, 0 Problem.
Danke!
Titel: Antw:[SOLVED] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 10 März 2021, 15:29:13
Ist jetzt per pull an setstate gegangen (siehe auch Hauptthread für chart https://forum.fhem.de/index.php/topic,48450.msg401006.html#msg401006 (https://forum.fhem.de/index.php/topic,48450.msg401006.html#msg401006)), sollte also demnächst per Update mitkommen.
Titel: Antw:[SOLVED] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 11 April 2021, 20:07:57
Hi Eki,

habe heute geupdated und der Fehler war wieder da.
Mit der Version von hier nicht.

Könntest du nochmal schauen?

Gruß und Danke,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 12 April 2021, 07:41:19
Ich kann, soweit ich das verstehe, nicht mehr machen, als einen Pull Request mit der neuen Version an setstates Version schicken. Das habe ich am 10.3. gemacht. Ist aber leider noch nicht in den Hauptbranch von FTUI übernommen worden.
Setstate ist ja aktuell an der FTUI Version3 dran, keine Ahnung, ob er damit jetzt überhaupt keine Änderungen an der "alten" Version mehr einpflegt.
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 12 April 2021, 20:09:49
Hi Eki,

danke. Ok verstehe.
Ich warte mal noch und wenn nicht werde ich mal setstate anhauen.

Danke und Gruß,
Stefan
Titel: Antw:Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: stefanru am 18 April 2021, 20:19:49
Hi,

setstate hat den Fix übernommen.

Danke!
Stefan
Titel: Antw:[Gelöst] Gefüllte Charts werden nicht richtig angezeigt
Beitrag von: eki am 19 April 2021, 07:34:33
OK, danke für Deinen Push.