SVG-Plot im FHEMWEB reagiert auch, wenn sich im Log nichts ändert

Begonnen von Dr. Boris Neubert, 10 Januar 2015, 14:43:12

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo Rudi,

anbei das gewünschte Päckchen. Doku und Schritte zur Reproduktion der beiden Probleme sind in der cfg-Datei.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Die .gplot Datei fehlt im Paket, habs selber zusammengereimt.
Ich habe keine Probleme mit den Beispielzeilen (siehe Anhang), ich habe deine config (Verzeichnisse angepasst) verwendet.
Ich meine dein Problem mit longpollSVG zu verstehen, ich habe im svg.js das : (bzw \x3a) in . umgewandelt, damit loest ein "set comp.nas power 116" ein reload aus, auch im Anhang zu sehen.

Dr. Boris Neubert

Hallo Rudi,

erstmal Danke für Deine Arbeit.

Ich habe mich zwischenzeitlich mal durch die Struktur von FHEM gewühlt, um zu verstehen, wie das alles zusammenpasst.

Der Knackpunkt besteht darin, dass ein Event aus nur zwei Teilen besteht: dem Device (in Form des zugehörigen Hashs) und einem String. Der String hat bei Änderungen von Readings immer (zumindest bei Verwendung des ReadingsUpdate-Mechanismus) die Form "reading: value" [Zeile 3740 in fhem.pl vor addEvent($hash, dieser String)]. Leider müssen wir also damit leben, dass Events nicht dreigliedrig sind und aus Device, Reading und Wert bestehen oder strukturiert, damit man auch Events wie DISCONNECTED, INITIALIZED, UNKNOWN usw. voneinander unterscheiden kann. Arbeit für ein anderes Leben.

Wir gehen also davon aus, dass Zeilen im FileLog die Form "timestamp device event" haben, mit event="reading: value" bei Readings. Also insgesamt "timestamp device reading: value".

Der GPlot-Editor in 98_SVG.pm benutzt die Funktion  FileLog_sampleDataFn() aus 92_FileLog.pm, um die möglichen regulären Ausdrücke anzuzeigen. Und dieser Kamerad erzeugt in Zeile 929 bis 936 die Vorschläge für die regulären Ausdrücke.

Folgendes ist mir dabei aufgefallen:


  • Diagramm label muss Diagram label in 98_SVG.pm heißen.
  • Die Anzahl Spalten $colnums ist (manchmal) zu groß. Ursache dafür in den Zeilen 927 bis 939 habe ich nicht untersucht/verstanden. Ich habe mir dabei ein FileLog angesehen, wo in jeder Zeile 4 Spalten sind. Da wird 5 ausgewiesen. In dem Dir überlassenen Beispiel kommt sogar 12 heraus, obwohl in den Example Lines maximal 7 Spalten stehen.

Nun zu den regulären Ausdrücken: die Zeilen aus dem FileLog werden am Leerzeichen gesplittet. Dann wird in Zeile 934 der reguläre Ausdruck  "$cols[1].$cols[2]" für das Reading und in Zeile 935 der reguläre Ausdruck "$cols[1].*" für das Device gebaut.

Meiner bescheidenen Meinung nach müssten die regulären Ausdrücke anders gebaut werden, nämlich "$cols[1] $cols[2]" und "$cols[1] .*" (Leerzeichen nach $cols[1]).

In meinem Beispiel wird dann aus der Setzung von 116 für das Reading power am Device comp.nas das Event ("comp.nas","power: 116"), der Logeintrag "timestap comp.nas power: 116" und der reguläre Ausdruck "comp.nas power:" für den GPlot.

Nun zum longpollSVG-Mechanismus:

Der müsste sich diesen regulären Ausdruck aus der .gplot-Datei ziehen, das endständige Kolon strippen, ihn am Blank in Name und Reading zerlegen,  und für die Filterung nutzen. Das Problem derzeit ist wohl, das bei der Regexp in der GPlot-Datei nicht mehr erkennbar ist, was der Device-Name und was das Event ist.

Ich bin mir nicht sicher, wie Du es gelöst hast, weil ich mir die Filterung nicht angesehen habe, aber ich habe das Gefühl, dass noch nicht alles zusammenpasst.

Ich bin mir bewusst, dass mein Vorschlag für die Erzeugung der regulären Ausdrücke in der GPlot-Datei eine Anpassung bestehender GPlot-Dateien erfordert, um den Punkt im regulären Ausdruck zu löschen.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatDiagramm label muss Diagram label in 98_SVG.pm heißen.
Geaendert.

ZitatDie Anzahl Spalten $colnums ist (manchmal) zu groß.
Stimmt, es war eins zu hoch. Ich kam bei deinem Beispiel aber nur auf 8, korrekt ist 7 (von 1 aus gezaehlt). Habs behoben.

ZitatLeerzeichen nach $cols[1]
So einfach ist das nicht, weil das FileLog get Syntax keine Leerzeichen beim Spezifizieren einer "Linie" erlaubt.
Und die Daten werden vom SVG Modul geholt, indem man nach "get FileLogName " alle Specs aus der .gplot Leerzeichen getrennt angibt. Gilt auch fuer DbLog und logProxy. Und ich sehe den Vorteil der Regexp mit Leerzeichen noch nicht.

ZitatDas Problem derzeit ist wohl, das bei der Regexp in der GPlot-Datei nicht mehr erkennbar ist, was der Device-Name und was das Event ist.
Das sollte aber egal sein. Hauptsache das Frontend bekommt genau die gleichen Daten, wie FileLog, dann koennen beide die gleichen Regexps zum filtern verwenden.


Zitatich habe das Gefühl, dass noch nicht alles zusammenpasst.
Wenn du dein Gefuehl mit einem Beispiel konkretisieren kannst, gehe ich dem gerne nach. In deinem obigen Paket fehlt ein konretes Event, evtl. uebersehe ich etwas, weil ich nicht mit den relevanten Events getestet habe.

Dr. Boris Neubert

Hallo Rudi,

Danke für Deine Änderungen. Ich habe mich heute daran getan, diese zu testen. Stand: was heute morgen per update kam.

Zitat von: rudolfkoenig am 21 Januar 2015, 21:23:36
Die Anzahl Spalten $colnums ist (manchmal) zu groß.
Stimmt, es war eins zu hoch. Ich kam bei deinem Beispiel aber nur auf 8, korrekt ist 7 (von 1 aus gezaehlt). Habs behoben.
Funktioniert.

Was noch nicht wieder geht, ist die Anzeige von "Example lines for input", wenn es noch keine .gplot-Datei gibt (siehe Doku in der oben angefügten .conf-Datei). Das dürfte es dem Anfänger sehr schwer machen, den GPlot-Editor zu benutzen und eine Konfiguration von Null an aufzubauen.


Die automatische Aktualisierung der SVG-Plot funktioniert auch noch nicht vollständig. Hier ein Auszug aus der JS-Konsole:

"11:58:59.798 Rcvd: ["0.hr.edv.e","2015-01-24 11:59:00","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-24 11:59:00</div>"]" fhemweb.js:147
"11:58:59.799 Rcvd: ["0.hr.edv.e-EP_POWER_METER","78","78"]" fhemweb.js:147
"11:58:59.799 Rcvd: ["0.hr.edv.e-EP_POWER_METER-ts","2015-01-24 11:59:00","2015-01-24 11:59:00"]" fhemweb.js:147
"11:58:59.799 Rcvd: ["0.hr.edv.e-state","2015-01-24 11:59:00","2015-01-24 11:59:00"]" fhemweb.js:147
"11:58:59.799 Rcvd: ["0.hr.edv.e-state-ts","2015-01-24 11:59:00","2015-01-24 11:59:00"]" fhemweb.js:147
"11:58:59.799 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:58:59.800 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:00.102 Rcvd: ["0.hr.edv.e","2015-01-24 11:59:00","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-24 11:59:00</div>"]" fhemweb.js:147
"11:59:00.103 Rcvd: ["0.hr.edv.e-state","2015-01-24 11:59:00","2015-01-24 11:59:00"]" fhemweb.js:147
"11:59:00.103 Rcvd: ["0.hr.edv.e-state-ts","2015-01-24 11:59:00","2015-01-24 11:59:00"]" fhemweb.js:147
"11:59:00.103 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:00.103 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:02.367 Rcvd: ["0.hr.rack.e","2015-01-24 11:59:02","<div id=\"0.hr.rack.e\"  class=\"col2\">2015-01-24 11:59:02</div>"]" fhemweb.js:147
"11:59:02.374 Rcvd: ["0.hr.rack.e-state","2015-01-24 11:59:02","2015-01-24 11:59:02"]" fhemweb.js:147
"11:59:02.374 Rcvd: ["0.hr.rack.e-state-ts","2015-01-24 11:59:02","2015-01-24 11:59:02"]" fhemweb.js:147
"11:59:02.375 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:02.375 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:02.689 Rcvd: ["0.hr.rack.e","2015-01-24 11:59:02","<div id=\"0.hr.rack.e\"  class=\"col2\">2015-01-24 11:59:02</div>"]" fhemweb.js:147
"11:59:02.690 Rcvd: ["0.hr.rack.e-EP_POWER_SWITCH","1","1"]" fhemweb.js:147
"11:59:02.690 Rcvd: ["0.hr.rack.e-EP_POWER_SWITCH-ts","2015-01-24 11:59:02","2015-01-24 11:59:02"]" fhemweb.js:147
"11:59:02.690 Rcvd: ["0.hr.rack.e-state","2015-01-24 11:59:02","2015-01-24 11:59:02"]" fhemweb.js:147
"11:59:02.690 Rcvd: ["0.hr.rack.e-state-ts","2015-01-24 11:59:02","2015-01-24 11:59:02"]" fhemweb.js:147
"11:59:02.691 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:02.691 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:03.359 Rcvd: ["0.hr.edv.e","2015-01-24 11:59:03","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-24 11:59:03</div>"]" fhemweb.js:147
"11:59:03.360 Rcvd: ["0.hr.edv.e-state","2015-01-24 11:59:03","2015-01-24 11:59:03"]" fhemweb.js:147
"11:59:03.360 Rcvd: ["0.hr.edv.e-state-ts","2015-01-24 11:59:03","2015-01-24 11:59:03"]" fhemweb.js:147
"11:59:03.360 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:03.360 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:06.896 Rcvd: ["0.hr.edv.e","2015-01-24 11:59:07","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-24 11:59:07</div>"]" fhemweb.js:147
"11:59:06.898 Rcvd: ["0.hr.edv.e-state","2015-01-24 11:59:07","2015-01-24 11:59:07"]" fhemweb.js:147
"11:59:06.898 Rcvd: ["0.hr.edv.e-state-ts","2015-01-24 11:59:07","2015-01-24 11:59:07"]" fhemweb.js:147
"11:59:06.898 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:06.899 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:08.187 Rcvd: ["0.hr.rack.e","2015-01-24 11:59:08","<div id=\"0.hr.rack.e\"  class=\"col2\">2015-01-24 11:59:08</div>"]" fhemweb.js:147
"11:59:08.188 Rcvd: ["0.hr.rack.e-EP_POWER_METER","72","72"]" fhemweb.js:147
"11:59:08.189 Rcvd: ["0.hr.rack.e-EP_POWER_METER-ts","2015-01-24 11:59:08","2015-01-24 11:59:08"]" fhemweb.js:147
"11:59:08.189 Rcvd: ["0.hr.rack.e-state","2015-01-24 11:59:08","2015-01-24 11:59:08"]" fhemweb.js:147
"11:59:08.189 Rcvd: ["0.hr.rack.e-state-ts","2015-01-24 11:59:08","2015-01-24 11:59:08"]" fhemweb.js:147
"11:59:08.189 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:08.189 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:10.514 Rcvd: ["0.hr.edv.e","2015-01-24 11:59:10","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-24 11:59:10</div>"]" fhemweb.js:147
"11:59:10.515 Rcvd: ["0.hr.edv.e-EP_POWER_METER","77","77"]" fhemweb.js:147
"11:59:10.515 Rcvd: ["0.hr.edv.e-EP_POWER_METER-ts","2015-01-24 11:59:10","2015-01-24 11:59:10"]" fhemweb.js:147
"11:59:10.515 Rcvd: ["0.hr.edv.e-state","2015-01-24 11:59:10","2015-01-24 11:59:10"]" fhemweb.js:147
"11:59:10.516 Rcvd: ["0.hr.edv.e-state-ts","2015-01-24 11:59:10","2015-01-24 11:59:10"]" fhemweb.js:147
"11:59:10.516 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:147
"11:59:10.516 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER."


Ich sehe mit
inform timer 0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER.
die Events aber in der Anzeige tut sich nichts (SVG passt sich nicht an), obwohl die Änderungen mit


"11:59:10.515 Rcvd: ["0.hr.edv.e-EP_POWER_METER","77","77"]" fhemweb.js:147


propagiert werden. Der Grund scheint mir zu sein, dass in der Nachricht über die Änderung hinter dem METER kein Zeichen mehr kommt, und im longpollSVG filter der Punkt am Ende steht.

Reicht das als Bestätigung meines Gefühls, dass die Regexperei in FileLog, GPlot und JS sehr schwer zu durchschauen und zu warten ist?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatDas dürfte es dem Anfänger sehr schwer machen, den GPlot-Editor zu benutzen und eine Konfiguration von Null an aufzubauen.

Der Anfaenger soll sich in Geduld ueben.
1. Warten bis events gekommen sind, dann kann man ein FileLog mit Dropdown erweitern.
2. Nochmal warten, bis Events in die Datei geschriebn sind, und danach die Plot-Datei bauen.
Ich wuesste nicht, wie ich das sonst mit Dropdown loesen sollte. Und wer kein Dropdown braucht, der kann die .gplot Datei direkt editieren.

ZitatDer Grund scheint mir zu sein...
Mir scheint der Grund zu sein, dass ich in svg.js Mist programmiert habe, und das doppelte Array nicht als solches geprueft habe. Warum es frueher bei meinem Tests durchgegangen ist, ist mir ein Raetsel.

ZitatReicht das als Bestätigung meines Gefühls, dass die Regexperei in FileLog, GPlot und JS sehr schwer zu durchschauen und zu warten ist?

Ich finde das, was wir jetzt haben, ist deutlich Anfaengerfreundlicher als das, was vor 2-3 Jahren gab. Ich lerne aber gerne dazu.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 24 Januar 2015, 15:26:43
Der Anfaenger soll sich in Geduld ueben.
1. Warten bis events gekommen sind, dann kann man ein FileLog mit Dropdown erweitern.
2. Nochmal warten, bis Events in die Datei geschriebn sind, und danach die Plot-Datei bauen.

Bin mir nicht sicher, ob wir über die selbe Sache sprechen.

Zu meinen Arbeitsschritten:

Ich habe ein FileLog, das gefüllt ist. Ich lege von Hand in der Konfigurationsdatei ein SVG an mit dem FileLog und dem Namen einer Gplot-Datei, die es noch nicht gibt. Soweit alles händisch, weil ich gerne die alleinige volle Kontrolle über den Inhalt, Struktur und Aussehen der Konfigurationsdatei haben möchte (der Save-Knopf ist bei mir ausgeblendet).

Nun will ich mir die GPlot-Datei mit dem GPlot-Editor erstellen lassen. Früher hat mir der GPlot-Editor "Example Lines" aus dem FileLog angezeigt, auch wenn noch gar keine GPlot-Datei existierte. Ich konnte aus den Dropdowns auswählen, "Write .gplot File" drücken und fertig.

Mir geht es also nur darum, dass seit einem kürzlich erfolgten Umbau die Example Lines nur angezeigt werden, wenn es bereits eine GPlot-Datei gibt, während früher immer Example Lines im GPlot-Editor angezeigt wurden. Ich verstehe auch nicht (weder logisch noch nach Kontemplation des Codes), warum das nicht mehr geht.

Zitat
Mir scheint der Grund zu sein, dass ich in svg.js Mist programmiert habe, und das doppelte Array nicht als solches geprueft habe. Warum es frueher bei meinem Tests durchgegangen ist, ist mir ein Raetsel.

Ich habe jetzt mal nur schnell die svg.js ausgetauscht, aber sehe keine Besserung. Ich kann leider nicht auf meinem Entwicklungssystem mit einer vollständig aktuellen Codebasis testen, weil ich just für dieses Device IPv6 brauche, was hier nicht richtig funktioniert. Ich warte bis morgen früh und mache dann ein Update.

Zitat
Ich finde das, was wir jetzt haben, ist deutlich Anfaengerfreundlicher als das, was vor 2-3 Jahren gab. Ich lerne aber gerne dazu.

Ich bezog mich nicht auf das User-Interface und die Anfänger. Das hat enorme Fortschritte gemacht.

Ich bezog mich auf mich armen Entwickler, der die Komplexität im Zusammenspiel zwischen Events, Regexps, FileLogs, GPlot-Editor, SVG, JS und FHEMWEB nicht mehr überblickt, und nun nicht mehr selbst Hand anlegen kann, um identifizierte Probleme zu reparieren.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatMir geht es also nur darum, dass seit einem kürzlich erfolgten Umbau die Example Lines nur angezeigt werden, wenn es bereits eine GPlot-Datei gibt

Aah.
Da SVG neuerdings mehrere Quellen (FileLog/LogProxy/etc) unterstuetzt, muss man als erstes fuer eine Line die Quele festlegen und Write .gplot ausfuehren, damit man Beispiele sieht. Sonst muesste der Editor von allen existierenden Quellen die Beispieldaten abholen, und nicht nur von den vorhandenen, und das fand ich zuviel.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 24 Januar 2015, 16:23:48
Da SVG neuerdings mehrere Quellen (FileLog/LogProxy/etc) unterstuetzt, muss man als erstes fuer eine Line die Quele festlegen und Write .gplot ausfuehren, damit man Beispiele sieht. Sonst muesste der Editor von allen existierenden Quellen die Beispieldaten abholen, und nicht nur von den vorhandenen, und das fand ich zuviel.

Das SVG-Device wird also qua GPlot-File an seine Quellen gebunden. Habe das auch gerade mal ausprobiert: je nachdem, welche Quelle man im GPlot-Editor auswählt, erscheinen die entsprechenden Beispielzeilen. Sehr hübsch.

Aber was hält Dich davon ab, auch ohne GPlot-File die Quellen in einem Dropdown anzuzeigen? Die suchst Du Dir ja immer alle zusammen, egal was im GPlot-File an Quellen verzeichnet ist.

Und wozu wird das Internal $hash->{LOGDEVICE} denn noch benötigt (siehe auch Doku zu SVG)?

Viele Grüße
Boris

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatAber was hält Dich davon ab, auch ohne GPlot-File die Quellen in einem Dropdown anzuzeigen?
Wie geschrieben:
ZitatSonst muesste der Editor von allen existierenden Quellen die Beispieldaten abholen, und nicht nur von den vorhandenen, und das fand ich zuviel.

ZitatUnd wozu wird das Internal $hash->{LOGDEVICE} denn noch benötigt (siehe auch Doku zu SVG)?

Fuer Kompatibilitaet mit alten .gplot Dateien, fuer ad-hoc SVG Dateien (die urspruenglich Form, aufgerufen vom FileLog-Raum-Ansicht), und noch ein Sonderfall, was mir jetzt nicht genau einfaellt. Im Prinzip koennte es aber weg.

Dr. Boris Neubert

Habe nochmal mit dem Gplot-Editor herumgespielt und jetzt verstanden, was Sache ist: wenn ich die Quelle in der linken Dropdown-Box auswähle, passiert noch nichts. In der rechten Dropdown-Box werden nur die Regexps zu der bereits vorhandenen Quelle angezeigt. Das ist kontraintuitiv. Erst wenn ich speichere (und vorher nicht vergesse, ein Label einzutragen), werden die Example Lines für diese Quelle vorgeladen. Versteht das der durchschnittliche Anwender und bin nur ich die ganze Zeit zu blöd gewesen?

Intuitiv würde ich erwarten, dass die jeweiligen Example Lines angezeigt werden und die rechte Dropdown-Box mit Regexps befüllt wird, sobald ich in der linken Dropdown-Box die Quelle wähle (on the fly).

Idealerweise zeigt der Gplot-Editor immer (also auch bei fehlenden oder kaputten Quellenangaben in der Gplot-Datei oder bei fehlender Gplot-Datei) eine leere Zeile mit Eingabefeld für das Label, Dropdown-Box mit Quellen (voreingestellt auf die erste aus der Liste) und Dropdown-Box mit den zugehörigen Regexps an, und darunter die Example Lines für die Zeile, die man gerade editiert.

Ist vermutlich sehr viel Arbeit, das umzusetzen.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

frank

ZitatIdealerweise zeigt der Gplot-Editor immer (also auch bei fehlenden oder kaputten Quellenangaben in der Gplot-Datei oder bei fehlender Gplot-Datei) eine leere Zeile mit Eingabefeld für das Label, Dropdown-Box mit Quellen (voreingestellt auf die erste aus der Liste) und Dropdown-Box mit den zugehörigen Regexps an, und darunter die Example Lines für die Zeile, die man gerade editiert.
oder fhem.log als quelle. sollte ja jeder haben. ich kann diese verwirrung nachvollziehen.

wo wir schon mal an dieser stelle sind, kann ich mir folgenden wunsch nicht verkneifen. könnte man nicht alle files, die im logverzeichnis sind, als quelle auswählbar machen. also auch files zulassen, zu denen es kein filelog-device gibt. ich denke da an daten, die sonstwo entstanden sind. eventuell sogar auf einem anderen fhem system.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

@Boris: Kompromiss: beim Focus in den neuen Zeile wird im Example-Fenster ein Hilfetext angezeigt:
ZitatSet the label and 'Write .gplot file' first in order to get example data and correct parameter choice

@frank: da SVG auf eine Quelle angewiesen ist, muesste man dafuer temporaere FileLogs anlegen, was vermutlich mit sehr viel Nebeneffekten verbunden ist, weiterhin funktioniert es nicht fuer die DbLog Leute.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 25 Januar 2015, 15:40:32
@Boris: Kompromiss: beim Focus in den neuen Zeile wird im Example-Fenster ein Hilfetext angezeigt:

Damit kann ich leben.

Dazu muss der GPlot-Editor im Gegensatz zu jetzt auch eine .gplot-Datei erzeugen, wenn noch keine Quellen ausgewählt sind. Im Moment weigert er sich in diesem Fall.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo Rudi,

Zitat von: rudolfkoenig am 24 Januar 2015, 15:26:43
Mir scheint der Grund zu sein, dass ich in svg.js Mist programmiert habe, und das doppelte Array nicht als solches geprueft habe. Warum es frueher bei meinem Tests durchgegangen ist, ist mir ein Raetsel.

bin auf der Version per update von heute morgen (plus aktualisiertes fhem.pl von heute Nachmittag).

Die Plots werden nicht aktualisiert.

In der JS-Konsole sehe ich

longpollSVG filter:0.hr.edv2.e.EP_POWER_METER.|0.hr.edv2.e.EP_ENERGY_METER.

und

inform timer 0.hr.edv2.e.EP_POWER_METER.|0.hr.edv2.e.EP_ENERGY_METER.

zeigt mir das Events einlaufen. Dazu sagt die JS-Konsole


"20:10:25.065 Rcvd: ["0.hr.edv2.e-EP_ENERGY_METER","0.0076175001449883","0.0076175001449883"]" fhemweb.js:154
"20:10:25.065 Rcvd: ["0.hr.edv2.e-EP_ENERGY_METER-ts","2015-01-25 20:10:25","2015-01-25 20:10:25"]" fhemweb.js:154


Hilft Dir das bei der Fehlersuche weiter?

Du bist sicher, dass die endständigen Punkte hinter der regexp egal sind? Die regexp 0.hr.edv2.e-EP_ENERGY_METER. matcht nämlich nicht 0.hr.edv2.e-EP_ENERGY_METER.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!