logProxy modul zum manipulieren und ergänzen von SVG plots

Begonnen von justme1968, 26 August 2014, 22:47:55

Vorheriges Thema - Nächstes Thema

gero

Hallo Andre,

mit ein paar kleinen Änderungen hat deine Version für den Polar-Plot funktioniert. (siehe Anhang)


Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

gima84

#301
Hi andre,

hab gerade das mit dem stacktrace ausprobiert -> im Log ist gar nichts zu sehen....

Änderung in 98_logProxy.pm:
Log 1, "offset :$offset";
  if( $offset =~ m/((-)?\d)*m/ ) {
    my $diff = $1;
Log 1, "diff: $diff";
Log 1, "time: $time";
    my @t = split("[-_:]", $time);
Log 1, Dumper @t;
    $time = mktime($t[5],$t[4],$t[3],$t[2],$t[1]-1+$diff,$t[0]-1900,0,0,-1);;
  } else {         
Log 1, "else: $time";
    $time = SVG_time_to_sec($time);
    $time += $offset;
  }         


Danach attribute stacktrace und verbose gesetzt:

root@debian:/opt/fhem# grep stacktrace fhem.cfg
attr global stacktrace 1
root@debian:/opt/fhem# grep verbose fhem.cfg
attr global verbose 5
attr lp verbose 5
root@debian:/opt/fhem#


Danach shutdown restart. Anschließend fhem geöffnet, meine Plotseite geöffnet und dann das Kommando gestartet:

tail -f -n 0 fhem-2015-11.log > logproxy.txt

Danach explizit den Plot geöffnet.

Jedoch ist dort drin kein Stacktrace zu finden, nur

2015.11.12 19:37:48 1: lp: offset=-1m: Search pattern not terminated at (eval 239) line 2.


Gesamtes Log:
015.11.12 19:37:48 4: Connection closed for FHEMWEB:192.168.0.107:57163: EOF
2015.11.12 19:37:48 4: FHEMWEB:192.168.0.107:57162 GET /fhem?detail=SVG_myDBLog_4; BUFLEN:0
2015.11.12 19:37:48 4: name: /fhem?detail=SVG_myDBLog_4 / RL:4328 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.12 19:37:48 4: FHEMWEB:192.168.0.107:57162 GET /fhem/SVG_showLog?dev=SVG_myDBLog_4&logdev=myDBLog&gplotfile=SVG_myDBLog_4&logfile=HISTORY&pos=; BUFLEN:0
2015.11.12 19:37:48 5: plotcommand: get myDBLog HISTORY INT 2015-01-01_00:00:00 2016-01-01_00:00:01  DbLog:myDBLog,offset=-2m:EG_HWR_SZWP:StromverbrauchletzterMonat DbLog:myDBLog,offset=-1m:EG_HWR_SZG:StromverbrauchletzterMonat
2015.11.12 19:37:48 5: Cmd: >get lp CURRENT INT 2015-01-01_00:00:00 2016-01-01_00:00:01 DbLog:myDBLog,offset=-2m:EG_HWR_SZWP:StromverbrauchletzterMonat DbLog:myDBLog,offset=-1m:EG_HWR_SZG:StromverbrauchletzterMonat<
2015.11.12 19:37:48 1: lp: offset=-2m: Search pattern not terminated at (eval 238) line 2.

2015.11.12 19:37:48 4: lp: calling get myDBLog HISTORY INT 2015-01-01_00:00:00 2016-01-01_00:00:01 EG_HWR_SZWP:StromverbrauchletzterMonat
2015.11.12 19:37:48 5: Cmd: >get myDBLog HISTORY INT 2015-01-01_00:00:00 2016-01-01_00:00:01 EG_HWR_SZWP:StromverbrauchletzterMonat<
2015.11.12 19:37:48 4: Processing Statement: SELECT
                  TIMESTAMP,
                  DEVICE,
                  READING,
                  VALUE
                   FROM history WHERE 1=1 AND DEVICE  = 'EG_HWR_SZWP' AND READING = 'StromverbrauchletzterMonat' AND TIMESTAMP >= '2015-01-01 00:00:00' AND TIMESTAMP < '2016-01-01 00:00:01' ORDER BY TIMESTAMP
2015.11.12 19:37:48 1: lp: offset=-1m: Search pattern not terminated at (eval 239) line 2.

2015.11.12 19:37:48 4: lp: calling get myDBLog HISTORY INT 2015-01-01_00:00:00 2016-01-01_00:00:01 EG_HWR_SZG:StromverbrauchletzterMonat
2015.11.12 19:37:48 5: Cmd: >get myDBLog HISTORY INT 2015-01-01_00:00:00 2016-01-01_00:00:01 EG_HWR_SZG:StromverbrauchletzterMonat<
2015.11.12 19:37:48 4: Processing Statement: SELECT
                  TIMESTAMP,
                  DEVICE,
                  READING,
                  VALUE
                   FROM history WHERE 1=1 AND DEVICE  = 'EG_HWR_SZG' AND READING = 'StromverbrauchletzterMonat' AND TIMESTAMP >= '2015-01-01 00:00:00' AND TIMESTAMP < '2016-01-01 00:00:01' ORDER BY TIMESTAMP
2015.11.12 19:37:48 5: Cmd: >{ "HISTORY" }<
2015.11.12 19:37:48 4: name: /fhem/SVG_showLog?dev=SVG_myDBLog_4&logdev=myDBLog&gplotfile=SVG_myDBLog_4&logfile=HISTORY&pos= / RL:2275 / image/svg+xml / Content-Encoding: gzip
/
2015.11.12 19:37:48 4: FHEMWEB:192.168.0.107:57164 GET /fhem?cmd={ReadingsVal(%22SVG_myDBLog_4%22,%22copyGplotFile%22,%22%22)}&XHR=1; BUFLEN:0
2015.11.12 19:37:48 5: Cmd: >{ReadingsVal("SVG_myDBLog_4","copyGplotFile","")}<
2015.11.12 19:37:48 4: name: /fhem?cmd={ReadingsVal(%22SVG_myDBLog_4%22,%22copyGplotFile%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.12 19:37:48 4: FHEMWEB:192.168.0.107:57165 GET /fhem?cmd={AttrVal(%22SVG_myDBLog_4%22,%22room%22,%22%22)}&XHR=1; BUFLEN:0
2015.11.12 19:37:48 5: Cmd: >{AttrVal("SVG_myDBLog_4","room","")}<
2015.11.12 19:37:48 4: name: /fhem?cmd={AttrVal(%22SVG_myDBLog_4%22,%22room%22,%22%22)}&XHR=1 / RL:26 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.11.12 19:37:48 4: FHEMWEB:192.168.0.107:57162 GET /fhem?XHR=1&inform=type=status;filter=SVG_myDBLog_4;since=1447353467;fmt=JSON&timestamp=1447353438561; BUFLEN:0

gima84

Hab noch etwas rausgefunden:

Wenn ich direkt in der logProxy_shiftTime($$)

ein print "abcd2 ";
mit reinnehme, erscheint das nicht im Logfile. Bei einem anderen Plot wo ich Sekunden schiebe, erscheint das abcd2.

Das -1m muss also schon eher verloren gehen. Wo genau konnte ich aufgrund meiner äußerst begrenzten Perl Kenntnisse leider nicht rausfinden.

gima84

Hi, leider waren meine weiteren Versuche nicht erfolgreich die verantwortliche Stelle zu finden. Hat jemand vielleicht noch eine Idee? Danke und Gruß

gandy

Hallo Andre,

Zitat von: justme1968 am 11 November 2015, 15:12:17
da im Funk fall keine zusätzlichen spalten vorkommen können kannst du mal versuchen direkt nach zeile 1006 ein$fld[1] = join( ':', @fld[1..@fld-1]);einzufügen. wenn es damit geht checke ich es ein.

darf ich mich nochmal kurz in Erinnerung  rufen und dich bitten, die Änderung einzuchecken?

Vielen Dank,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

rtv

Ich habe aus den Beispielen den Punkt am Ende eines Plots ausprobiert:
#LogProxy ConstX:logProxy_shiftTime($data{currdate1},1),$data{currval1}+0.0001
(mein LogProxy ist UpperCase definiert).

Leider ist der Punkt unten links und {currdate1} wird nicht richtig interpretiert:


2016-02-02_15:21:20 34
#6:Aussensensor.*:50:

get LogProxy CURRENT INT 2016-02-02_00:00:00 2016-02-03_00:00:01 ConstX:logProxy_shiftTime($data{currdate1},1),$data{currval1}+0.0001

1970-01-01_01:00:01 0.0001
1970-01-01_01:00:01 0.0001
#ConstX:logProxy_shiftTime($data{currdate1},1),$data{currval1}+0.0001


Aktuelles Debian Jessie auf Intel x64.
Mache ich einen offensichtlichen Fehler?

HotteFred

Hallo Andre,

kann ich Plots auf der X-Achse anpassen? Also z.b.: Einen Plot bauen, der als Zeitscala nur von 8:00 bis 18:00Uhr plottet?

Grüße
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs

Andi291

Guten Morgen!

Ich habe das Problem, dass extend nicht funktioniert. Ich denke, syntaktisch bin ich korrekt unterwegs, da die Option predict hinhaut.

Ergänze ich extend=3600 wird kein ungewöhnlicher Log-Eintrag erzeugt. Es passiert aber im Diagramm nichts. Ergänze ich extend=4m kommt der Log-Eintrag "Search pattern not terminated at (eval 1893) line 2". Ebenfalls keine Änderung im Diagramm.

Any ideas?

FhemPiUser

#308
Zitat von: gima84 am 26 Oktober 2015, 10:27:02
Hi,

ich versuche einen Plot um ein Monat zu verschieben, was leider nicht funktioniert:

DbLog:myDBLog,offset=-1m:EG_HWR_SZWP:StromverbrauchletzterMonat

Im Log steht dazu
lp: offset=-1m: Search pattern not terminated at (eval 3877) line 2.

Ausgelesene Werte (im Plot Editor):
#DbLog:myDBLog,offset=-1m:EG_HWR_SZWP:StromverbrauchletzterMonat

Im Plot wird dabei komischerweise nichts angezeigt. Mach ich bei der Definition irgendwas falsch?
bei mir geht es mit -1m in häkchen, also offset="-1m"...

Andi291

Ein Traum, der Fehler ist weg. Extended wird immer noch nicht, aber das schau ich mir noch an.

Danke und Grüße, Andi

TWART016

Es kann nur ein logproxy device angelegt werden.

Wenn ich die Werte von einem SVG bearbeite, ändern sie sich auf bei einem anderen SVG.

Wie muss ich das SVG oder logproxy device bearbeiten, dass ich logproxy für mehrere Plots verwenden kann?

automatisierer

Klingt komisch....

vielleicht mal ein paar Details, was genau änderst du? Und was genau passiert dann in dem anderen Device?

TWART016

Wenn ich im einen Plot das label oder spec ändern, wird dieses ebenfalls in das andere Plot übernommen. Dies verhält sich bidirektional.

So habe ich das konfiguriert.
get lp CURRENT INT 2017-11-16_00:00:00 2017-11-17_00:00:01
FileLog:FileLog_MAX_165c81:4:MAX_165c81.temperature::
FileLog:FileLog_MAX_165b1d:4:MAX_165b1d.temperature::
FileLog:FileLog_MAX_165e0d:4:MAX_165e0d.temperature::
FileLog:FileLog_MAX_165e37:4:MAX_165e37.temperature::
FileLog:FileLog_MAX_165c81:4:MAX_165c81.temperature::
FileLog:FileLog_LaCrosse_34:4:LaCrosse_34.temperature::


Source ist immer lp (lopgroxy device).

automatisierer

Dann würde ich eher sagen, dass du bei beiden SVG Devices das gleiche GPLOTFILE nutzt, damit werden Änderungen an dem einen natürlich auch in dem anderen wirksam. Das hat aber nix mit logProxy zu tun.

kannst ja mal für spass nen list von den beiden SVG Devices machen.

TWART016

Stimmt, da stehen die gleichen Daten.

Kann ich das nachträglich ändern?