Neues Charting / Plotting - GUI Redesign?

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

Vorheriges Thema - Nächstes Thema

varaktor

#825
Hallo,

habe gesucht aber nichts vernuenftiges dazu gefunden (hoffe habe es nicht uebersehen)

Ich moechte Diagramme von Digitalwerten meiner Heizung (z.B. Pumpe an/aus) als Logikdiagramm darstellen. Gibt es dazu eine Doku bzw wie mache ich dies am besten mit dem Charting Frontend. FHEM und Frontend laufen perfekt (Analog Plots wie Temperaturplots) funktionieren auch schon

Mit dem GPlots direkt im FHEM hat es funktioniert (siehe angehaengtes Bild). Wie erzeuge ich so einen Plot bzw. gibt es eine Doku dazu?

FHEM laueft auf RasPi Model B mit DbLog mit Neues_Charting_Frontend

Danke
Viele Gruesse
varaktor

Johannes

Hallo,

Bei der Konfiguration einer Achse auf "Styling" klicken und dort ziemlich unten "show steps for this axis" auswählen.

varaktor

Hallo Johannes,

danke fuer die schnelle Antwort. Bin aber noch nicht ganz mit dem Ergebnis zufrieden  ;).

Ich wuerde gerne mehrere Signale übereinander gestapelt in einem Diagram darstellen um wirklich den zeitlichen Ablauf verschiedener Pumpen usw. zu sehen. Wenn alle aufeinander geschrieben werden ist es ziemlich unuebersichtlich. Das ist sehr hilfreich fuer die Optimierung und Fehlersuche an der Heizung (darum ist mir gerade dieser Graph so wichtig ;-) )

Mit gplot hatte ich dies so geloest:
#FileLog 3:WP2_Ausgang_Verdichter_M1.*::$fld[2]=~"on"?1:0
#FileLog 3:WP2_Ausgang_Primaerpumpe_M11.*::$fld[2]=~"on"?-1:-2
#FileLog 3:WP2_Ausgang_Elektrische_Zusatzheizung_E10.*::$fld[2]=~"on"?-3:-4
#FileLog 3:WP2_Ausgang_Heizkreisumwaelzpumpe_M13.*::$fld[2]=~"on"?-5:-6
#FileLog 3:WP2_Ausgang_Warmwassserumwaelzpumpe_M18.*::$fld[2]=~"on"?-7:-8
#FileLog 3:WP2_Ausgang_Zusatzumwaelzpumpe_M16.*::$fld[2]=~"on"?-9:-10
#FileLog 3:WP2_Ausgang_EVU_Sperre.*::$fld[2]=~"on"?-11:-12
#FileLog 3:WP2_Ausgang_Warmwasserflanschheizung_E9.*::$fld[2]=~"on"?-13:-14

Gibt es da was aehnliches im Charting Frontend?

Danke
Gruss
varaktor

Johannes

Hallo,

Eine eingebaute Lösung gibt es nicht, das ganze ist aber mit Userreadings ganz einfach umsetzbar.
So wie auch schon in deinem gplot file muss pro device das reading on/off übersetzt werden nach 0/1 fürs erste Gerät, 2/3 fürs zweite, 4/5 fürs dritte etc.
Dann solltest du genau das erreichen

lkoe

Hi,

beim Versuch das Frontend mit FileLog zu verwenden, bin ich auf folgendes Problem gestoßen:

An zwei Stellen beginnt der fhem get command mit "get Logfile", meine FHEM Installation (recht neu) fordert hier aber anstatt "Logfile" den Namen des FileLogs, also z.B. "FileLog_CUL_TX_38". Daher habe ich zwei Zeilen im Skript ChartController.js geändert:

Zeile 248:  url: '../../../fhem?cmd=get%20' + logname + '%20' + currentlogfile + '%20-%20' + starttime + '%20' + endtime + '&XHR=1',
Zeile 828:  cmd = 'get ' + device + ' ' +

Zumindest der Ersteller dieses Threads hatte mit dem gleichen Problem zu kämpfen: http://forum.fhem.de/index.php?topic=36725.0

Habe ich etwas übersehen oder ist das ein Bug im Skript?
Vielen Dank!

gima84

Hi,

gibt es die Möglichkeit einen Offset auf der Zeitachse zu definieren? Mein Youless L110 speichert den Stromverbrauch von gestern "heute". Damit sind die Plots um einen Tag verschoben. Gibts da eine Möglichkeit?

Gruß Martin

Johannes

Zitat von: lkoe am 04 August 2015, 22:29:17
Habe ich etwas übersehen oder ist das ein Bug im Skript?
Vielen Dank!
Hallo,

Kann sein das sich FHEM da intern geändert hat, früher hatte das einwandfrei funktioniert und da ich schon lange keine Logfiles mehr nutze kann ich das momentan nicht nachstellen.
Aber deine Lösung scheint ja das Problem an der richtigen Stelle anzugehen.

Johannes

Zitat von: gima84 am 18 August 2015, 12:21:05
gibt es die Möglichkeit einen Offset auf der Zeitachse zu definieren? Mein Youless L110 speichert den Stromverbrauch von gestern "heute". Damit sind die Plots um einen Tag verschoben. Gibts da eine Möglichkeit?
Du kannst das Zeitintervall händisch eingeben. Bei Schritten Vorwärts oder Rückswärts sollte das berücksichtigt werden. Die Anzeige mainpulieren kann aber nicht.
Insgesamt wäre es sinnvoller, das entsprechende Modul zu fixen, anstatt die falschen Daten im Nachhinein zu maniupulieren / korrigieren

emanuel

#833
Hallo,

ich habe die Installation gemäß dem FHEM Wiki Eintrag (http://www.fhemwiki.de/wiki/Neues_Charting_Frontend) vorgenommen:

1. update all http://svn.code.sf.net/p/fhem/code/trunk/fhem/www/frontend/controls_frontend.txt
2. Shutdown Restart
3. In der fhem SQL Tabelle noch den Befehl ausgeführt (CREATE TABLE frontend (ID int NOT NULL UNIQUE AUTO_INCREMENT, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE varchar(64), NAME varchar(64), VALUE TEXT); )

Bis vor der Installation hat meine Schaltsteckdose wunderbar funktioniert, jetzt leider nicht mehr...
Irgendwie funktioniert die Verbindung nicht mehr. Ich habe darauf hin eine neue Verbinfung aufgebaut (neu gepaired), reboot etc., leider auch ohne Erfolg...
Ich sehe das Bild im Anhang und die Logfiles.
Dort scheinen wohl Probleme mit dem Update-Modul "99_update_ALT" aufzutreten. Ich habe dies zu _ALT umbenannt, da ich zu beginn auf der Synology keine Updates machen konnte...

Logfiles FHEM und Steckdose anbei (scheint der Editor hier nicht als Code haben zu wollen!?).

AUSZUG:
2015.08.25 01:47:57 0: Server shutdown
2015.08.25 01:48:00 1: reload: Error:Modul 99_update_ALT deactivated:
Global symbol "%UPDATE" requires explicit package name at /usr/local/FHEM/share/fhem/FHEM/99_update_ALT.pm line 37.
Global symbol "%UPDATE" requires explicit package name at /usr/local/FHEM/share/fhem/FHEM/99_update_ALT.pm line 38.
Global symbol "$DISTRIB_BRANCH" requires explicit package name at /usr/local/FHEM/share/fhem/FHEM/99_update_ALT.pm line 64.
Global symbol "%UPDATE" requires explicit package name at /usr/local/FHEM/share/fhem/FHEM/99_update_ALT.pm line 83.


=> Kann ich Charting wieder löschen um das Problem zu beseitigen oder findet jemand den Fehler?
Wieso schreibt Charting eigentlich nichts in die Tabellle frontend? Diese ist nämlich leer?

Johannes

Hallo,

Dein Fehler hat nichts mit dem frontend zu tun, denn Schritt 1 kopiert nur neue Dateien und Schritt 3 lässt ebenfalls dein FHEM unberührt.
Der Fehler und das Modul sagen mir nichts, da musst du mal im allgemeinen Bereich nachfragen.
Die Tabelle Frontend wird gefüllt sobald du Charts speicherst und, ganz wichtig, deine Konfiguration korrekt ist, dass das chartingfrontend auch auf die DB zugreifen kann.
Sollte das nicht der Fall sein müsstest du aber auch eine Fehlermeldung beim Aufruf des Frontends bekommen.

Um das Frontend wieder zu löschen kannst du auf dem Dateisystem das Verzeichnis frontend unterhalb von www löschen.
Die Tabelle in MySQL kann einfach gedroppt werden.

Grüße,
Johannes

Marie

#835
Hallo,

ich habe auch das Problem das ich keine neue Grafik mehr stellen kann....die einzige die in der DB drin ist, kann aber aktuell abgerufen werden...
Beim Erstellen (Erstellpunkt ist da!) kann man den Graphen konfigurieren und auch anzeigen, drückt man auf speichern, so kann man einen Namen eingeben und OK drücken und alles gut. Er sagt allerdings nicht,
das der Graph erfolgreich gespeichert wird.

In der Konsole (Safari) wird folgende Meldung angezeigt.

[Error] Ext.JSON.decode(): You're trying to decode an invalid JSON String: {"success": "false", "msg":"Could not prepare statement: no such table: frontend, SQL was: INSERT INTO frontend (TYPE, NAME, VALUE) VALUES ('savedchart', 'Graph_Heizung', '{"y":"Dachboden","device":"Heizung","logtype":"dblog","linestrokewidth":"2","linecolorhexcode":"FF0000","fillopacity":"0.5","fillcolorhexcode":"FF0000","yaxisshowpoints":"true","pointshape":"circle","pointradius":"2","yaxissmoothing":"3","yaxislegendcheck":"true","pointcolorhexcode":"FF0000","yaxisfillcheck":"false","yaxisstepcheck":"false","yaxisside":"left","leftaxistitle":"","rightaxistitle":"","starttime":"2015-08-25_18:05:49","endtime":"2015-08-26_18:05:49"}')"}

raise (ext-all.js, line 21)
decode (ext-all.js, line 21)
success (ChartController.js, line 1714)
callback (ext-all.js, line 21)
onComplete (ext-all.js, line 21)
onStateChange (ext-all.js, line 21)
(anonyme Funktion) (ext-all.js, line 21)
[Error] Failed to load resource: Ungültige URL (jquery-2.0.3.min.map, line 0)


Danach würde ja die Tabelle fehlen oder? Das kann aber nicht sein, da der bestehende Graph funktioniert und auch Daten von den anderen Quellen aufgezeichnet werden...

Ideen??

Das Einzige was in der Vergangenheit gemacht wurde sind FHEM-Updates. Ich kann allerdings nicht sagen in wieweit das zeitlich zusammenhängt.

LG

Marie

PS: Das Springen in der Webansicht beim Konfigurieren bei einem schon erstellten Graphen habe ich auch...äußerst lästig... aber womit man nicht alles lebt..  ;)

PSII: Ich habe mal eben in der SQL-Datenbank geschaut (fhem.db): Dort sollten ja die Tabellen history, current und frontend vorhanden sein wenn ich das richtig gelesen habe...aus irgendeinem Grund ist nur history vorhanden..kann das sein?

Banana Pi & FHEM2FHEM Raspberry,RS485 Modbus Stromzähler UMG96, diverse Schaltsteckdosen 433 MHz, 868 MHz, MYSENSORS Temperatursensoren , Smartvisu, Homekit & Siri, Geofency, Zwave Rauchmelder & Steckdosen & Garagensteuerung, TabletUi mit BananaPi M2Ultra im Wohnmobil, Homebridge usw.usw.

Johannes

Hallo,

Wenn die Tabelle frontend fehlt, erklärt das auch die Probleme!
Ich kann versichern, dass das Charting Frontend absolut Null Code enthält, der Tabellen löschen wurde. Das muss wohl "aus Versehen" passiert sein, ich kann nicht ausschließen, das irgendeine Modul / update von FHEM sowas macht.
Da ich die Entwicklung in FHEM nicht regelmäßig verfolge kann ich nicht sagen, ob das mit Neuerungen in Sachen DbLog oder den datenbankbasierten Konfigurationen zusammenhängt (es wäre aber meine erste Vermutung).
Was jetzt hilft ist, die fehlenden Tabellen wieder zu erstellen, wie in der Anleitung angegeben.

Das du überhaupt noch einen gespeicherten Chart sehen kannst liegt vermutlich daran, dass Charts auch Dateibasiert gespeichert werden können. Das ist der Fall, wenn man Daten aus FileLog visualisiert.
Grüße

Marie

#837
So,

kurzes Update, das die Tabellen fehlten war ja klar, habe die auch angelegt, hat aber nicht funktioniert...war dann gestern Abend etwas ratlos.
Heute morgen noch einmal kontrolliert und festgestellt das ich im falschen Verzeichnis war....  :-[ ::) :o
Also flugs ins richtige Verzeichnis gewechselt, Tabellen angelegt und plötzlich funktioniert es auch wieder. Kaum macht man es richtig....    ;)

Was ich aber nach wie vor nicht nachvollziehen kann ist die Tatsache das die Tabellen fehlten, obwohl die Aufzeichnung schon funktioniert hat.
Naja nun, sei's drum, angelegt und alles gut.

Das die eine Grafik funktionierte lag in der Tat daran, das diese auf einem Filelog basierte....

Nun ist wieder alles gut. Ansonsten wirklich super Arbeit Johannes, das Einzige was ich noch vermisse ist, das man die Skalierungen (X- und Y-Achse) zur Laufzeit ändern kann (in FHEM integrierte Graphen). Also quasi zusätzlich zu "Step back, Step forward" noch ein "increase/decrease time span" ??
ich kenne dies von "Professionellen" Auswertungen. Vielleicht eine kleine Anregung?


Weiter so!

LG

Marie
Banana Pi & FHEM2FHEM Raspberry,RS485 Modbus Stromzähler UMG96, diverse Schaltsteckdosen 433 MHz, 868 MHz, MYSENSORS Temperatursensoren , Smartvisu, Homekit & Siri, Geofency, Zwave Rauchmelder & Steckdosen & Garagensteuerung, TabletUi mit BananaPi M2Ultra im Wohnmobil, Homebridge usw.usw.

Johannes

Hi,

Die Zoomfunktion kennst du aber schon, oder (Box aufziehen mit der Maus) ? :-)
Damit kann man X und Y seinen Bedürfnissen anpassen...

Marie

Ja die kenne ich schon...

aber die ist nicht so sehr hilfreich wenn man gezielt vorgehen möchte...also einen Tag vorher 19-23:00 z.B...

klar geht das über den Zoom...direkt wäre mir persönlich aber lieber. Aber vielleicht bin ich da auch ein wenig verwöhnt ... :) ;)

LG

Marie



Banana Pi & FHEM2FHEM Raspberry,RS485 Modbus Stromzähler UMG96, diverse Schaltsteckdosen 433 MHz, 868 MHz, MYSENSORS Temperatursensoren , Smartvisu, Homekit & Siri, Geofency, Zwave Rauchmelder & Steckdosen & Garagensteuerung, TabletUi mit BananaPi M2Ultra im Wohnmobil, Homebridge usw.usw.