Neues Charting / Plotting - GUI Redesign?

Begonnen von Johannes, 20 Januar 2013, 12:06:52

Vorheriges Thema - Nächstes Thema

Georg312

Hallo Johannes,

erstmal vielen Dank für Dein tolles Projekt. Ich habe es schon länger verfolgt, konnte es aber erst jetzt mit dem filelog-Zugriff auf meiner Fritzbox testen. Auf jeden Fall bis gestern. Nun wollte ich heute mal die letzten Änderungen testen auf habe dafür fhem und das frontent upgedatet.

Nur leider startet nun das Frontend nicht mehr, sondern bleibt hängen mit "Please wait while...". In der Konsole finde ich die Exeption

"Uncaught Ext.JSON.decode(): You're trying to decode an invalid JSON String: {"

Ich habe die gleichen Symptome, die Du unter

http://forum.fhem.de/index.php/topic,17292.msg113132.html#msg113132

schilderst. Nur leider gehen sie mit einem Neustart nicht weg. Wie kann man "JsonList" beeinflussen? Jemand eine Idee, wo der Fehler über das Update herkommen könnte?

Gruß
Georg

Johannes

Hi,

Bitte schilder das Problem, oder untermauer es, in dem anderen Thread von mir den du gefunden hast. Das Problem ist meiner Meinung nach vollkommen losgelöst vom Frontend.
Ich hoffe es nimmt sich jemand der Sache mal an, hatte es schon mehr als ein mal.

Ich hab mir jetzt auch nochmal frisch ein FHEM update gezogen, und habe das Problem aktuell nicht.

Es bleibt ein Rätsel, aber ich kann dir nur empfehlen mal auszuprobieren, die fhem.cfg zu sichern und anschließend so simpel wie möglich zu gestalten, also wenn möglich wie im Auslieferungszustand.
Habe nämlich immer noch den leisen Verdacht, dass ein kleiner Syntaxfehler dort großes verursachen kann...

Vielleicht baue ich mal eine Fehlermeldung ein, wenn das JSON mal wieder nicht geparst werden kann, kommt ja doch leider häufiger vor...

Invers

ZitatBitte genau Beschreiben wie es dazu kommt (Reihenfolge von dem, was gemacht wurde).
Ich kann das Problem bisher nicht nachvollziehen, die Liste wird jedenfalls jedesmal aktualisiert, wenn man in der "Select Device" Combobox einen Eintrag auswählt.

Der Fehler ist nachvollziehbar.
Ich lade ein Chart, sagen wir mit Darstellung von Temp,Actor und Window.
Wenn ich dann auf "Select Y-Axis" klicke, geht die Liste nicht auf. Wenn ich aber vorher eine andere Datenquelle über Select Device auswähle, jedoch nicht dieselbe Quelle anklicke, dann geht es in dieser einen Zeile.
Ich vermute, dass das Feld "Select Y-Axis" erst aktualisiert wird, nachdem über "Select Device" der Wert kurz geändert wurde.
Das Problem kenne ich von VBA (Kombinationsfelder in Abhängigkeit).  ;D


Ich verstehe entweder die Funktion von "Reset Zoom" nicht, oder sie funktioniert nicht richtig.

Für beide Probleme s. Bild.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Johannes

Zitat von: Invers am 02 Januar 2014, 23:53:07
Der Fehler ist nachvollziehbar.
Ich lade ein Chart, sagen wir mit Darstellung von Temp,Actor und Window.
Wenn ich dann auf "Select Y-Axis" klicke, geht die Liste nicht auf. Wenn ich aber vorher eine andere Datenquelle über Select Device auswähle, jedoch nicht dieselbe Quelle anklicke, dann geht es in dieser einen Zeile.
Ich vermute, dass das Feld "Select Y-Axis" erst aktualisiert wird, nachdem über "Select Device" der Wert kurz geändert wurde.
Das Problem kenne ich von VBA (Kombinationsfelder in Abhängigkeit).  ;D
Ok, nachdem ich jetzt gelesen hab, dass du zuerst den Charts lädst, sehe ich den Fehler auch. Und deine Vermutung ist übrigens absolut richtig ;-)
Kümmer ich mir drum...

Zitat von: Invers am 02 Januar 2014, 23:53:07
Ich verstehe entweder die Funktion von "Reset Zoom" nicht, oder sie funktioniert nicht richtig.
Reset Zoom hat seit knapp einem Jahr einen Bug, ich glaub du bist der erste, der ihn gefunden hat.
Reset Zoom funktioniert nur sauber, wenn man ein mal gezoomt hat. Zoomt man 2 oder mehrmals hintereinander, wird kein korrekter Zustand mehr hergestellt.
Ich denke dass ist das, was du meinst?
Jetzt wo er gefunden wurde, werde ich den auch mal angehen.... :-)

Invers

Freut mich, ich wollte dir aber keine Kopfschmerzen bereiten. Ich muss ja nicht unbedingt zoomen. Aber ich probiere halt gerne rum mit neuen Spielzeugen.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Johannes

Update
Folgendes wurde gefixt:
  * Dropdownlisten von Device und Reading liessen sich bei Filelogs nach dem Laden eines gespeicherten Chart nicht mehr öffnen
  * "Reset Zoom" stellt jetzt immer den Originalzustand wieder her, egal wie oft in der Zwischenzeit gezoomt wurde
  * Falls JsonList keine valide Antwort beim starten des Frontends ausgibt, bekommt der User eine entsprechende Fehlermeldung mit Link zum Forumsbeitrag

Update wie üblich

Johannes

Zitat von: Strippenzieher am 02 Januar 2014, 23:23:40
IE 11
Habe auch gerade versucht zu speichern, kann schon sein, dass IE 11 etwas rum zickt.
Habe gerade mal mit IE9 getestet, was anderes habe ich nicht hier.
Funktioniert alles einwandfrei, sowohl speichern, als auch Darstellung und Styling. Ich fürchte der IE11 ist auf jeden Fall der schuldige...

Invers

#622
Funktioniert soweit wie angekündigt. Danke.
Eine Kleinigkeit ist aber dennoch nicht in Ordnung:
Wenn ich auf Reset Zoom klicke, ohne vorher gezoomt zu haben, ist die Grafik abgeschnitten und lässt sich auch nicht wieder herstellen.
Könnte 7 würde man Reset Zoom so lange sperren, bis ein Zoom erfolgt ist, wäre das Problem vom Tisch.
Vielleicht ist es auch besser, wenn Reset Zoom nicht auf die gespeicherte, vorhergehende Zoomstufe zurücksetzt, sondern auf Anfang, also . Alternativ ginge natürlich auch, mehrere Zoomschritte zu speichern und schrittweise zurücksetzen zu können.
S. Bilder

Richtig toll wäre es, könnte man die Gesamthöhe und Gesamtbreite des Charts festlegen. Breite nicht so wichtig, aber Höhe wäre cool.

Edit:
Inzwischen habe ich bemerkt, dass sehrwol versucht wurd, den Originalzustand wiederherzustellen. Also schien der Originalzustand falsch gespeichert / wiederhergestellt zu sein.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Johannes

Ok, der kleine Zoombug wird in der nächsten Version verschwinden.
Wie stellst du dir das vor mit dem Anpassen der Höhe?
Was hätte es für einen Vorteil, wenn der CHart größer ist als die sichtbare Fläche und man Scrollbalken benutzen muss. Oder umgekehrt, warum sollte der Chart kleiner sein als die maximal nutzbare Fläche?

Gruß!

Invers

Ich sehe da einen reinen Vorteil für das Schönheitsempfinden. Die Proportionen würden einfach besser stimmen.
Wie in meinem letzten Bild ersichtlich, ist die Kurve doch etwas hässlich, weil hoch wie breit. Ein Format, wie hier das Eingabefeld des Forums, oder wie  bei der Charterstellung ist halt gefälliger.
Falls für später geplant ist, dass man, wie in FHEM auch hier mehrere Charts untereinander darstellen kann, ist mit dem Maxwert der Höhe auch bestimmbar, wieviele Charts man auf dem Schirm auf einmal sehen kann.
Für die reine Erstellung der Charts ist es sicher nicht so nötig.

Ausserdem überlege ich die ganze Zeit, wie man Werte, die nur 0 oder 1 annehmen können, besser darstellen kann. Auf einer Skala von 1 bis 100 sind die halt schlecht zu sehen.

Aber bitte bedenken, das sind alles nur Ideen von mir, die mir so durch den Kopf gehen. Ob diese sinnvoll sind, oder nicht, kann ich immer nicht so gut einschätzen. Je mehr Gedanken man äussert, um so mehr steigt die Gefahr, dass einer Quatsch ist. LOL
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Johannes

Zitat von: Invers am 03 Januar 2014, 16:58:46
Ich sehe da einen reinen Vorteil für das Schönheitsempfinden. Die Proportionen würden einfach besser stimmen.
Wie in meinem letzten Bild ersichtlich, ist die Kurve doch etwas hässlich, weil hoch wie breit.
...
Ausserdem überlege ich die ganze Zeit, wie man Werte, die nur 0 oder 1 annehmen können, besser darstellen kann. Auf einer Skala von 1 bis 100 sind die halt schlecht zu sehen.
Ich glaube du solltest dich noch ein bisschen mit der Chartkonfiguration auseinandersetzen.
Stichwort: Scalrange: manual
und auch
Left Axis / RIght Axis.

Damit kannst du steuern, was auf welcher Achse mit welcher Skala dargestellt werden soll.
z.B: Luftfeuchte: Achse links, Range manuell auf 0-100, zweite Achse Fenster offen auf rechts, Range auf manuell und 0-1

Spiel mal damit rum, ich denke das löst ein paar deiner Bedenken.

Johannes

Zitat von: Invers am 03 Januar 2014, 16:58:46
Falls für später geplant ist, dass man, wie in FHEM auch hier mehrere Charts untereinander darstellen kann, ist mit dem Maxwert der Höhe auch bestimmbar, wieviele Charts man auf dem Schirm auf einmal sehen kann.
Grundsätzlich eine wirklich nette Idee.
Mal ein Beispielscreenshot wie das aussehen könnte:

(http://www7.pic-upload.de/03.01.14/4zkikublvjs4.jpg)

Das Problem dabei ist die Performance, wenn man 4-6 Charts mit jeweils einigen Hunderten Messwerten rendert, kommt dein Browser sicher ganz schön ins schwitzen.
Um das zu lösen denke ich schon eine Weile darüber nach, die Charts automatisiert im Hintergrund zu rechnen und zu aktualisieren. Zur ANzeige kommt dann nur noch ein Bild bzw. SVG zum Einsatz mit den vorberechneten Daten.
Das ist dann performancemäßig das beste was man erreichen kann.
Das SVG für einen Chart habe ich schon in der Hand, auf Platte screiben könnte ich es über FHEM auch schon. Ich experimentier mal ein bisschen rum ... :-)

Invers

Zitat
Ich glaube du solltest dich noch ein bisschen mit der Chartkonfiguration auseinandersetzen.
Stichwort: Scalrange: manual
und auch
Left Axis / RIght Axis.

Gesehen, manchmal sind die Finger schneller, als das Hirn. :-)

Zu den Charts,  im Forum hatte jemand die Idee, das irgendwie zu cashen. Leider finde ich den Beitrag nicht mehr.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Johannes

Zitat von: Invers am 03 Januar 2014, 18:47:04
Zu den Charts,  im Forum hatte jemand die Idee, das irgendwie zu cashen. Leider finde ich den Beitrag nicht mehr.
Ja, bezieht sich aber leider auf die gnuplot charts, die vollkommen anders generiert werden. Leider keine direkte Lösung für mich, aber so ähnlich habe ich es vor

Georg312

Hallo,

ok, habe fhem jetzt nochmal aus dem letzten Backup geholt. Jetzt geht die jsonlist auch wieder. Folgende Ergebnisse:

>>> 4.) Werte, die nicht numerische Zeichen enthalten, werden für den Fall von "ok|on|open|active|true" durch 1 ersetzt, ebenso "low|off|closed|inactive|false" durch 0. Wenn jemand damit Probleme hat oder ihm was fehlt, einfach Bescheid geben.

Hier würde ich mir noch "tilt" als 0.5 wünschen für "Fenster ist gekippt":

2014-01-03_19:12:46 KU_Fenster contact: closed (to broadcast)
2014-01-03_19:12:46 KU_Fenster closed
2014-01-03_19:12:46 KU_Fenster contact: open (to broadcast)
2014-01-03_19:12:46 KU_Fenster open
2014-01-03_19:12:41 KU_Fenster contact: tilted (to broadcast)
2014-01-03_19:12:41 KU_Fenster tilted

Das mit dem "Save"  habe ich noch nicht ganz verstanden. Mit "Save Chart" kann ich immer nur einen neuen Chart anlegen. "Save to Config" ist nur für fhem. Wie kann ich einen geänderten Chart speichern?

Gruß Georg