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

rudolfkoenig

Der Regexp 0.hr.edv2.e-EP_ENERGY_METER. sollte matchen, da es nicht mit 0.hr.edv2.e-EP_ENERGY_METER sondern mit 0.hr.edv2.e-EP_ENERGY_METER:0.0076175001449883 verglichen wird. Ausschnitt:

    log("longpollSVG filter:"+flog);
    for(var j=0; j < devs.length; j++) {
      var d = devs[j];
      var ev = d[0]+":"+d[1];
      if(ev.match(flog)) {
        log("longpollSVG: reload SVG");

Im log sieht man vorher die Ausgabe von d. In der alten Version habe ich auf devs[0]:devs[1] geprueft, was natuerlich Unsinn war. Kannst du bitte ev auch noch ausgeben?

Dr. Boris Neubert

Zitat von: rudolfkoenig am 26 Januar 2015, 07:35:47
Im log sieht man vorher die Ausgabe von d. In der alten Version habe ich auf devs[0]:devs[1] geprueft, was natuerlich Unsinn war. Kannst du bitte ev auch noch ausgeben?

Du meinst in den Ausgaben auf der JS-Konsole?

Weißt Du, ob man die Ausgaben der JS-Konsole beim Firefox in eine Datei leiten kann? Das rauscht sonst alles nur so vorbei.

Kann sein, dass ich mich erst am Wochenende wieder melde, weil ich höchstens noch heute spät abends kurz an meinen Rechner komme.

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 25 Januar 2015, 15:40:32
@Boris: Kompromiss: beim Focus in den neuen Zeile wird im Example-Fenster ein Hilfetext angezeigt:

habe das gerade getestet mit negativem Ergebnis (per Update von gestern Abend):

  • Log ist gefüllt.
  • .gplot-Datei fehlt noch; auf der Detail-Seite des SVG zeigt mir der GPlot-Editor Cannot read /opt/fhem/www/gplot/Test.gplot an.
  • Die erste, noch leere Zeile für eine Datenzeitreihe ist da. Ebenso der Hinweistext Example lines for input:
    Set the label and 'Write .gplot file' first in order to get example data and correct parameter choice
    .
  • Ich schreibe Power / W in das Label-Feld und drücke den Write-Knopf.
  • Ich werde auf die Detail-Seite zurückgeworfen, der allerdings der ganze Anfang fehlt (Beginnt mit dem Fehlertext und geht weiter mit <table><tr>.... vom GPlot-Editor. Ganz oben steht: missing data in logfile: won't write incomplete .gplot definition
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 26 Januar 2015, 07:35:47
Im log sieht man vorher die Ausgabe von d. In der alten Version habe ich auf devs[0]:devs[1] geprueft, was natuerlich Unsinn war. Kannst du bitte ev auch noch ausgeben?

Bitte finde hier hoffentlich alle erforderlichen Angaben:

1. GPlot-Datei im Anhang.

2. Events: Ausgabe von

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

liefert auf der Konsole:

fhem> 2015-01-31 08:44:27 HXBDevice 0.hr.edv2.e EP_POWER_METER: 105.11093091167

3. Zum selben Zeitpunkt zeichnet mir die JS-Konsole folgendes auf:


"08:44:27.081 Rcvd: ["0.hr.edv.e","2015-01-31 08:44:27","<div id=\"0.hr.edv.e\"  class=\"col2\">2015-01-31 08:44:27</div>"]" fhemweb.js:154
"08:44:27.089 Rcvd: ["0.hr.edv.e-state","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.089 Rcvd: ["0.hr.edv.e-state-ts","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.090 Rcvd: ["0.hr.edv2.e","2015-01-31 08:44:27","<div id=\"0.hr.edv2.e\"  class=\"col2\">2015-01-31 08:44:27</div>"]" fhemweb.js:154
"08:44:27.091 Rcvd: ["0.hr.edv2.e-EP_POWER_METER","105.11093091167","105.11093091167"]" fhemweb.js:154
"08:44:27.092 Rcvd: ["0.hr.edv2.e-EP_POWER_METER-ts","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.092 longpollSVG filter:0.hr.edv2.e.EP_POWER_METER." fhemweb.js:154
"08:44:27.093 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.093 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.093 longpollSVG filter:comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm." fhemweb.js:154
"08:44:27.093 longpollSVG filter:comp.nas.power." fhemweb.js:154
"08:44:27.094 longpollSVG filter:comp.nas.PeripheralTemp.|comp.nas.SystemTemp.|comp.nas.CPUTemp." fhemweb.js:154
"08:44:27.094 longpollSVG filter:0.hr.vent.*" fhemweb.js:154
"08:44:27.667 Rcvd: ["0.hr.rack.e","2015-01-31 08:44:27","<div id=\"0.hr.rack.e\"  class=\"col2\">2015-01-31 08:44:27</div>"]" fhemweb.js:154
"08:44:27.668 Rcvd: ["0.hr.rack.e-state","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.668 Rcvd: ["0.hr.rack.e-state-ts","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.668 longpollSVG filter:0.hr.edv2.e.EP_POWER_METER." fhemweb.js:154
"08:44:27.668 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.669 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.669 longpollSVG filter:comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm." fhemweb.js:154
"08:44:27.669 longpollSVG filter:comp.nas.power." fhemweb.js:154
"08:44:27.669 longpollSVG filter:comp.nas.PeripheralTemp.|comp.nas.SystemTemp.|comp.nas.CPUTemp." fhemweb.js:154
"08:44:27.669 longpollSVG filter:0.hr.vent.*" fhemweb.js:154
"08:44:27.942 Rcvd: ["0.hr.rack.e","2015-01-31 08:44:27","<div id=\"0.hr.rack.e\"  class=\"col2\">2015-01-31 08:44:27</div>"]" fhemweb.js:154
"08:44:27.943 Rcvd: ["0.hr.rack.e-state","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.944 Rcvd: ["0.hr.rack.e-state-ts","2015-01-31 08:44:27","2015-01-31 08:44:27"]" fhemweb.js:154
"08:44:27.944 longpollSVG filter:0.hr.edv2.e.EP_POWER_METER." fhemweb.js:154
"08:44:27.944 longpollSVG filter:0.hr.edv.e.EP_POWER_METER.|0.hr.edv.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.944 longpollSVG filter:0.hr.rack.e.EP_POWER_METER.|0.hr.rack.e.EP_ENERGY_METER." fhemweb.js:154
"08:44:27.944 longpollSVG filter:comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm.|comp.nas.drivepm." fhemweb.js:154
"08:44:27.944 longpollSVG filter:comp.nas.power." fhemweb.js:154
"08:44:27.944 longpollSVG filter:comp.nas.PeripheralTemp.|comp.nas.SystemTemp.|comp.nas.CPUTemp." fhemweb.js:154
"08:44:27.944 longpollSVG filter:0.hr.vent.*" fhemweb.js:154


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

rudolfkoenig

Zitat.gplot-Datei fehlt noch
Der Editor kann keine .gplot Datei erstellen, nur eine existierende modifizieren.
Aus diesem Grund fuehrt "Create SVG plot" im FileLog Detail-Ansicht folgende Befehle aus:
define SVG_Log.FileLogName SVG FileLogName:template:CURRENT
set SVG_Log.FileLogName copyGplotFile


ZitatBitte finde hier hoffentlich alle erforderlichen Angaben:
Ich habe versucht, mit den Daten aus deinem JavaScript Log das Problem Nachzustellen, kann ich aber nicht. Die plausibelste Erklaerung ist fuer mich, dass dein Browser eine verarltete Version von svg.js verwendet. Kannst du bitte (wie geschrieben) zwischen den beiden Zeilen in svg.js:
      var ev = d[0]+":"+d[1];
      if(ev.match(flog)) {

eine zusaetzliche mit
log(ev);
einbauen?

Dr. Boris Neubert

Zitat von: rudolfkoenig am 31 Januar 2015, 13:24:22
Ich habe versucht, mit den Daten aus deinem JavaScript Log das Problem Nachzustellen, kann ich aber nicht. Die plausibelste Erklaerung ist fuer mich, dass dein Browser eine verarltete Version von svg.js verwendet. Kannst du bitte (wie geschrieben) zwischen den beiden Zeilen in svg.js:
...
einbauen?

Sorry, hatte ich überlesen.

svg.js von gestern abend, sieht jetzt so aus:

Zitat
...
    log("longpollSVG filter:"+flog);
    for(var j=0; j < devs.length; j++) {
      var d = devs[j];
      var ev = d[0]+":"+d[1];
log("###"+ev+"###");
      if(ev.match(flog)) {
        log("longpollSVG: reload SVG");
...

FHEM und Browser neu gestartet.

Ich bekomme weiterhin meine Events in der FHEM-Konsole aber auf der JS-Konsole kommt gar nichts mehr an.

Ich baue jetzt eine auch von Dir einsetzbare Testumgebung mit dem aktuellen SVN-Stand auf und melde mich dann wieder.

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

Dr. Boris Neubert

Hallo Rudi,

bitte finde anbei eine Konfigurationsdatei. Diese enthält auch eine Anleitung, wie Du testen kannst.

Außerdem ist ein Log von der JS-Konsole drin mit dem zusätzlichen Logging. Daran kannst Du schon ohne Testlauf die Ursache des Problems erkennen (Zeilen der Form ###...### mit dem longpollSVG-Filter vergleichen).

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

rudolfkoenig

Ich glaub, ich habe es jetzt gefunden.
Habe fhemweb.js angepasst, und eingecheckt.

Dr. Boris Neubert

Hallo Rudi,

1)
Danke für die Anpassung. Mit der von mir bereit gestellten Testkonfiguration funktioniert es nun. Wenn ich nun mein Namensschema mit den Punkten im Namen verwende, passiert folgendes:
a) Ausgehend von "Create SVG Plot" in der Detailsicht des FileLog verweigert der GPlot-Editor die Arbeit (keine sinnvolle Zeile).
b) Wenn ich die GPlot-Datei von Hand anlege, funktioniert es dennoch nicht.

Neue veränderte Testkonfiguration anbei (31859-2.cfg).

2)
Das Problem, dass man trotz existierendem SVG-Device bei fehlender GPlot-Datei im GPlot-Editor nicht weiterkommt, könnten wir mit beigefügtem Patch lösen. Er nimmt bei fehlender GPlot-Datei das Template. Komischerweise funktioniert der GPlot-Editor aber nach dem ersten "Write .gplot File" nicht mehr. Das ist mir unerklärlich.

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

Dr. Boris Neubert

Nachtrag:

3)
Im Modus "Line" stimmt etwas mit der Anzeige nicht. Es müssen mehr als drei Punkte sein, um überhaupt etwas zu sehen, und der letzte wird nicht gezeigt. Man sieht das rasch, wenn man mit meiner obigen Testumgebung drei Werte 5, 10, 20 eingibt und im GPlot-Editor zwischen Punkten und Linien hin- und herstellt. Wenn man noch 1000 dazu eingibt, sieht man die die ersten drei mit Linien verbunden aber die 1000 fehlt. Vermutlich ein Nebeneffekt der Spline-Interpolation.

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

rudolfkoenig

Vorneweg: ich finde die Idee mit nc und ECMD klasse.

1a) Ist wohl ein SVG Fehler (Invalid path attribute), sieht man im JS Konsole. Entsteht durch eine Optimierung bei line, cubic & co, falls die letzten x Werte im SVG identisch sind. Habs gefixt und eingecheckt.
1b) ist vermutlich mit 1a) identisch.

2) habs eingecheckt, bei mir funktioniert es.

3) ist vermutlich auch das in 1a) beschriebene Geschichte.

betateilchen

Anmerkung zu 2: Hat auch jemand an DbLog Anwender gedacht? Die brauchen als template nämlich die templateDB.gplot
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: rudolfkoenig am 01 Februar 2015, 14:55:48
Vorneweg: ich finde die Idee mit nc und ECMD klasse.

Schön. Dabei war es eigentlich ein Akt der Verzweiflung.  ;D

Zitat
1a) Ist wohl ein SVG Fehler (Invalid path attribute), sieht man im JS Konsole. Entsteht durch eine Optimierung bei line, cubic & co, falls die letzten x Werte im SVG identisch sind. Habs gefixt und eingecheckt.
1b) ist vermutlich mit 1a) identisch.
2) habs eingecheckt, bei mir funktioniert es.
3) ist vermutlich auch das in 1a) beschriebene Geschichte.

1) Einen neuen Plot aus dem FileLog heraus mit "Create SVG Plot" anlegen funktioniert auch bei mir jetzt.
2) Ein SVG-Gerät ohne existierende GPlot-Datei mit dem GPlot-Editor bearbeiten funktioniert bei mir immer noch nicht. Du kannst es nachstellen, wenn Du die beiden auskommentierten Zeilen nach # Plot ... in 31859-2.cfg aktivierst und vor dem Test noch sicher stellst, dass kein myGplot.gplot im GPlot-Verzeichnis liegt. Man sieht dann den SVG-Plot mit den Werten aus dem Template. Er zeigt aber keine FileLogs an. "Write .gplot" schickt dann den Browser in die Wüste.
3) Funktioniert.

Werde morgen ein Update fahren und auf dem Produktivsystem das Ganze nochmal anschauen und gelegentlich auch noch zwei saubere Templates beisteuern.


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

Dr. Boris Neubert

Zitat von: betateilchen am 01 Februar 2015, 16:53:05
Anmerkung zu 2: Hat auch jemand an DbLog Anwender gedacht? Die brauchen als template nämlich die templateDB.gplot

Ja ich.

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

rudolfkoenig

Nicht unbedingt, im Editor kann man neuerdings alle verfuegbaren Datenquellen auswaehlen, und damit von FileLog auf DbLog umstellen. Oder diese gemischt verwenden.