FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: justme1968 am 26 August 2014, 22:47:55

Titel: logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 26 August 2014, 22:47:55
anbei ein erste version eines moduls mit dem daten in svg plots mainpuliert und ergänzt werden können. möglich ist damit:
alle funktionen die logProxy bereit stellt werden im .gplot file über #logProxy zeilen konfguriert. zusätzlich muss natürlich genau wie für die #FileLog bzw. #DbLog zeilen jeweils eine eigene plot zeile vorhanden sein.

der plot editor wird (hoffentlich) so gut es geht unterstützt. leider sind die drop down listen nicht dynamisch abhängig von einem anderen feld konfgurierbar.

vorbereitung:aus:
#DbLog myDevice:myReading
#FileLog 4:PCA301_076035:power::
#FileLog 4:<SPEC1>:consumption::

wird dann zum beispiel jeweils:
#logProxy DbLog:myDb:myDevice:myReading
#logProxy FileLog:FileLog_PCA301_076035:4:PCA301_076035.power::
#logProxy FileLog:FileLog_<SPEC1>:4:<SPEC1>.consumption::



in einer solchen #logProxy zeile kann dann folgendes stehen:
alles nach dem : hinter ConstX, ConstY und Func wird als perl ausdruck mit eval ausgewertet. es dürfen keine weiteren : in diesen zeilen vorhanden sein.

mögliche <options>:
im aufruf eigener funktionen die daten zum plotten liefern kann auf $from und $to (jeweils ein string mit dem start und end zeitpunkt) zugegriffen werden. die funktion selber muss vier werte zurück liefern:
  - die eigentlichen punkte des plots als string mit durch \n getrennte elemente der form yyyy-mm-dd_hh:mm:ss <wert>
  - die min, max und currval werte (optional)

ein beispiel für eine solche funktion ist logProxy_WeekProfile2Plot mit dem das temperatur profil von Heating_Control und WeekdayTimer devices sowie von HomeMatic und MAX Thermostaten geplottet werden kann.
wenn der erste paramter der name eines passenden devices ist wird mit logProxy_Heating_Controll2WeekProfile, logProxy_HM2WeekProfile bzw. logProxy_MAX2WeekProfile aus den intern daten bzw. readings ein wochenprofil erzeugt und dieses dann geplottet.
alternativ kann statt eines device namens auch direkt das aufbereitetes wochenprofil als hash der form {$wday}{$time}{$value} (bei dem ein $wday von 0 sonntag entspricht) übergeben werden.
logProxy_WeekProfile2Plot hat noch einen vierten optionalen paramter. hier kann eine regex angegeben werden um aus dem Heating_Controll oder WeekdayTimer schaltwert den zu plotzenden wert zu extrahieren z.b. so: logProxy_WeekProfile2Plot("myHeatingControl",$from,$to,"(\\d*)\$")

hilfen zum manipulieren von zeitpunkten:
beispiele:
offene fragen:
gruss
  andre

edit: ein (hoffentlich) letztes update vor dem einchecken:
- das clippen am rand des plots für extend ist eingebaut.
- gibt die option interpolate. damit wird interpoliert statt einfach nur den vorherigen/nächsten wert auf den rand zu schieben.
- beispielfunktion logProxy_Func2Plot ist eingebaut
#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_hms2dec(sunrise_abs_dat($sec))}')
#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_hms2dec(sunset_abs_dat($sec))}')

edit:
- neue option predict

edit: das modul ist jetzt eingecheckt
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: hexenmeister am 27 August 2014, 00:42:09
Sehr cool!

Zitathat überhaupt jemand verwendung dafür :)?
ja!

Zitatsollte es eine option geben um einen plot auch vertikal zu verschieben? im gegensatz zur manipulation der werte über $fld/$val in den column_spec des log device würden bei der verschiebung über eine logProxy option die min/max/avg/... werte nicht mit verschoben und den original wert behalten.
ich denke, das wäre nützlich. So könnte man Diagramme erstellen, wo mehrere Werte aufeinander gestappelt sind. Ich hatte mal ein Diagramm bauen wollen, um die Systemauslastung darzustellen: idle+nice+system+... = 1. Und die sollte alle übereinander (und nicht aufeinander).

Zitateine option um am anfang/ende eines plots fehlende werte zu ergänzen
hat mir schon immer gefehlt

Zitateine variable um direkt die ungefäre zeitskala des plots zu festzustellen (stunde/tag/woche/monat/jahr)
hab ich nicht verstanden :( Ist wohl zu schon zu spät ;)

Zitatist plotProxy als name besser als logProxy? oder noch etwas anderes?
Ich finde logProxy besser, auch wenn das nur mit Plots verwendbar ist.
<weihnachtsmodus> Noch schöner wäre natürlich, wenn das Plot-Modul direkt anbieren würde, quasi "transparent" und ohne zusätzliche Schlüsselworte...</weihnachtsmodus> ;)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 10:20:05
Hallo Andre,

hier ist Dir ein kleiner Fehler unterlaufen.
Zitat#logProxy DbLog:myDb:myDevice:myReading
ZitatDbLog:<log device>,<options>:<(alte) DbLog column_spec>
Die Definition myDb ist nicht nötig. Im Gegenteil sie führt zu einem Fehlverhalten.

Habe dann auch gleich mit der Umsetzung angefangen, laufe aber in ein größeres Problem.

Definition von logProxy.
define MyLogProxy logProxy

Modifikation von SVG.
define Buero_TC_Tag SVG MyLogProxy:MyHomeMaticTCall:HISTORY

Definiere ich in der gplot-Datei nur
#logProxy ConstY:10
wird eine horizontale Linie bei y=10 gezeigt.

Möchte ich dann die Daten aus der DB lesen mit folgender Konfiguration
# Created by FHEM/98_SVG.pm, 2013-09-19 12:14:57
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics nomirror
set y2tics
set grid y2tics
set ylabel "Ventil/Luft [%]"
set y2label "Temperatur [C]"
set yrange [0:100]
set y2range [0:35]

#logProxy DbLog:Buero_TC:actuator::
#logProxy DbLog:Buero_TC:measured-temp::
#logProxy DbLog:Buero_TC:desired-temp::
#logProxy DbLog:Buero_TC:humidity::

plot "<IN>" using 1:2 axes x1y1 title 'Ventilstellung' ls l6fill lw 1.5 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'IST-Temperatur' ls l0fill lw 1.5 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'SOLL-Temperatur' ls l1 lw 1.5 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Luftfeuchtigkeit' ls l2 lw 1.5 with lines

stürzt fhem ab und im fhem...log steht als letztes logProxy_Get

Irgendwo ein Fehler meinerseitz?

ciao und Danke
walter

EDIT: sehe beim Erneuten lesen Deiner Beschreibung, dass Du bei den Beispielen auch die DB angibts. Teste das gleich nochmal.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 10:44:39
du musst du dblog und filelog zeilen das device das zur dn bzw dem jeweiligen filelog gehört mit angeben. das ist in meinen beispielen das myDb.

sonst weiß logProxy nicht aus welchem log device die daten für die betreffende zeile kommen. das wird ja in diesem fall nicht mehr über das SVG device vorgegeben. es könne ja mehrere datenquellen sein.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 11:16:39
Hallo Andre,

habe die Definition entsprechend geändert
#logProxy DbLog:fhemdb:Buero_TC:actuator::

fhem stürzt dennoch ab  :-\. Im MySQL log findet sich dann folgender Eintrag.
140827 11:09:09 [ERROR] Invalid (old?) table or database name 'lost+found'

Suche weiter und ciao
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 12:11:21
Hallo Andre,

habe das ganze mal auf FileLog umgestellt.
#logProxy FileLog:Buero_HK-2014:4:Buero_TC.actuator::
Auch hier stürzt fhem ab.

Frage eines Perl-Novizen: Muss ich evtl zusätzliche Perl-Module per CPAN nachinstallieren?

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 12:17:01
@Hexenmeister:
Zitathab ich nicht verstanden :( Ist wohl zu schon zu spät ;)
ist eigentlich ganz einfach :) wenn du z.b. die min/max bandbreite rechts oder links am rand des plots darstellen willst musst du es abhängig von der aktuellen skala unterschiedlich weit verschieben damit es nicht direkt auf dem rand aber trotzdem immer an der gleichen stelle erscheint.

@wkarl: es müssen keine zusätzlichen module installiert werden. bekmmst du im log oder auf der console irgend eine meldung? vor allem die console wäre interessant. die meldung im db log kann ich gerade gar nicht interpretieren.

deine filelog zeile wäre im übrigen unvollständig. die filelog syntax ist anders als die dblog syntax. da fehlt die spalte in der der wert steht.

ich habe oben eine neue version angehängt die mit verbose 4 das genaue kommando das ans log device gesendet wird protokoliert. was steht da bei dir?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 12:23:38
oben gibt es eine neue version die jetzt auch die option
Zitatextend=<wert>
kennt. damit kann man den bereich der aus dem log device geholt wird rechts und links erweitern. damit kann verhindert werden das am anfang und ende des plots Lücken enstehen.

TODO: damit die option richtig funktioniert muss der plot noch am anfang und ende geclipt werden damit die kurve nicht über das fenster hinaus ragt. wenn etwas anderes als steps verwendet wird muss noch konfiguriert werden können ob und wie interpoliert wird um den wert für den anfang und ende zu bekommen.

im beispiel wird der bereich für avg_day rechts und links um 24 stunden vergrößert. damit kann jetzt auch in den plot hinein gezoomt werden und es wird trotzdem der korrekte wert angezigt. in den screenshots sieht man ein mal den nicht verbreiterten Bereich der rechts zu früh aufhört und ein mal die erweiterte (und verschobene) version die den bereich komplett ausfüllt (und noch darüber hinaus geht).

#logProxy DbLog:dbLog:s300ht_1:temperature::             
#logProxy DbLog:dbLog:s300ht_1:temperature_avg_day::   
#logProxy DbLog:dbLog,offset=-60*60*24,extend=60*60*24:s300ht_1:temperature_avg_day::
#logProxy ConstY:$data{avg1}                             
                                                         
plot "<IN>" using 1:2 axes x1y1 title 'temp' ls l2 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'avg_day' ls l4 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'avg_day_shifted' ls l0 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'avg' ls l5 lw 1 with lines,\
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 12:52:07
Hallo Andre,

neue Version getestet. fhem stürzt nicht mehr ab.

Das log liefert nun, dass fhemdb nicht exisitert. Die gibt es aber.

Ausschnitt aus db.conf
connection => "mysql:database=fhemdb;host=localhost;port=3306;mysql_socket=/opt/mysqlDBs/mysql.sock",

Kann es sein, dass meine umgezogene mysql.sock daran schuld ist?

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 13:04:15
ist das auch wirklich der name des fhem dblog devices?

du musst den Namen des fhem devices das zur db gehört angeben. nicht den namen auf db ebene.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 13:06:16
probier bitte auch mal ein wochenprofil zu plotten.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: martinp876 am 27 August 2014, 16:41:53
Hi,

ich habe einmal probiert, ein wochenprofil zu plotten - bislang erfolglos :(
plotten eines Weekday_Timer wochenprofils:
  #logProxy Func:logProxy_WeekProfile2Plot("myHeatingTimer",$from,$to)

  plot "<IN>" using 1:2 axes x1y1 title 'profile' ls l2 lw 1 with steps,\

primär scheint mein fehler zu sein, dass $from, $to nicht korrekt ist.
Sollen da die Variablen stehen oder ein Wert?
wenn ich ein wochenprofil darstellen will, brauche ich kein absolutes Datum.
soll das Profil dem Aktuellen übergeblendet werden oder soll das Wochenprofil alleinstehend dargestellt werden? 2-teres ist eigentlich mein ansinnen. Ich will es primär ohne logfile darstellen.
Zweck des Wochenprofils für mich ist, graphisch anzusehen, was ich programmiert habe. Es mit einem ist-file zu überlagern macht (bei mir) keinen sinn, da soll-werte eh schon angezeigt werden.

Was mache ich falsch, was habe ich falsch verstanden?

Gruss Martin
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 16:55:10
da sollen genau die variablen so stehen. die werden automatisch durch den plot zeitraum ersetzt.

das wochenprofil ist eine kurve wie jede andere auch. du kannst sie alleine in einem plot darstellen oder mit anderen kurven.

zeig mal bitte ein list deines heatingTimer. plotten kann die beispiel routine zur zeit nur wenn direkt temperatur werte vorhanden sind (wie zum beispiel im ersten HeatingControl beispiel in der commandref) und nicht komplexere befehle an ein anderes device dafür muss ich noch das parsen dieser kommandos einbauen.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 18:46:43
Hallo Andre,

ok, verstanden. Mein Missverständnis. Folgend mal alles zusammenfassend dokumentiert.

DbLog device:
# log all to fhemdb
define MyDbLog DbLog /opt/fhem/db.conf .*:.*
attr MyDbLog room Z-HA-fhem


device des Interesses
define Buero_TC CUL_HM 1B3E3D
attr Buero_TC .devInfo 00FFFF
attr Buero_TC .stc 58
attr Buero_TC IODev HMLAN_01
attr Buero_TC IOgrp VirtCCU:HMLAN
attr Buero_TC actCycle 000:10
attr Buero_TC actStatus alive
attr Buero_TC autoReadReg 4_reqStatus
attr Buero_TC event-min-interval state:600
attr Buero_TC event-on-change-reading state
attr Buero_TC event-on-update-reading .*
attr Buero_TC expert 2_full
attr Buero_TC firmware 2.1
attr Buero_TC fm_type slider
attr Buero_TC group Buero_Fussboden
attr Buero_TC icon temp_control
attr Buero_TC model HM-CC-TC
attr Buero_TC room H-EG-R-Buero
attr Buero_TC serialNr JEQ0121699
attr Buero_TC subType thermostat


Definition für GraphPlot
#================================================
#==== GraphPlot Test
#================================================
define Buero_TC_Tag_Test SVG MyLogProxy:MyHomeMaticTCall-test:HISTORY
attr Buero_TC_Tag_Test group Buero_Plots
attr Buero_TC_Tag_Test icon time_graph
attr Buero_TC_Tag_Test label "Thermostat TC - IST-Temp.: $data{currval2}C, SOLL-Temp.: $data{currval3}C"
attr Buero_TC_Tag_Test plotfunction Buero_TC
attr Buero_TC_Tag_Test room Z-HA-Test
attr Buero_TC_Tag_Test sortby 01
attr Buero_TC_Tag_Test title "Title"


und die .gplot Datei
# Created by FHEM/98_SVG.pm, 2013-09-19 12:14:57
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics nomirror
set y2tics
set grid y2tics
set ylabel "Ventil/Luft [%]"
set y2label "Temperatur [C]"
set yrange [0:100]
set y2range [0:35]

#logProxy DbLog:MyDbLog:Buero_TC:measured-temp::

plot "<IN>" using 1:2 axes x1y1 title 'IST-Temperatur' ls l6 lw 1.5 with lines,\


Jetzt sollte doch alles in Deinem Sinne definiert sein? fhem stürzt jetzt aber wieder ab.

in fhem log sehe ich als letztes 'logProxy_Get'

Was meine umgezogene MySQL Installation betrifft funktioniert diese Konstallation seit es DbLog gibt. Schreiben und Lesen. Da Du auf dem device MyDbLog aufsetzt sollte das nicht das Problem sein.

Weiter auf der Suche und ciao
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 19:05:46
setz bitte für das logProxy device verbose 5. steht dann mehr im log?

kannst fhem von Hand auf der console starten? was steht dann dort nach dem absturz?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 19:24:02
Hallo Andre,

hier das log mit verbose 5
2014.08.27 19:33:21.682 3: logProxy_Get
2014.08.27 19:33:21.683 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-27_00:00:00 2014-08-28_00:00:01 Buero_TC:measured-temp::
2014.08.27 19:33:25.996 3: CUL_HM set SchaltSteckdosePM01_Sw statusRequest
2014.08.27 19:33:28.542 3: logProxy_Get


Der Rest später meine Mädchens wollen Essen.

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 27 August 2014, 19:28:52
Hallo Andre,

das Schönmachen dauert doch etwas länger  ::)

hier der output nach dem manuellen Starten
given is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1091, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1093, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1101, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1111, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1119, <> line 67.
given is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1124, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1125, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1126, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1127, <> line 67.
when is experimental at /opt/fhem/FHEM/93_DbLog.pm line 1140, <> line 67.
Smartmatch is experimental at /opt/fhem/FHEM/57_Calendar.pm line 395, <> line 5.
Smartmatch is experimental at /opt/fhem/FHEM/57_Calendar.pm line 575, <> line 5.
Can't use string ("") as a SCALAR ref while "strict refs" in use at /opt/fhem/FHEM/98_logProxy.pm line 427.


ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 19:44:07
ich denke ich habe das problem gefunden. deine perl version schein etwas pingeliger zu sein als meine.

eine aktualisierte version ist im ersten beitrag.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 27 August 2014, 20:18:10
super sache, danke.  :)

wenns läuft, dann prima. da ich immer den ploteditor benutze, habe ich das mit dem logproxy natürlich auch so versucht. leider wird hier im editierfeld schon ein ":" vorgegeben.  :-\ der hat mir dann den ganzen nachmittag versaut, weil als erstes muss das filelogdevice eingetragen werden.

falls es noch andere gnuplot-dummies gibt: => man muss hier also fast die komplette, alte gnufile zeile eintragen. wenn die gnufile zeile so ausgesehen hat:

Zitat#FileLog 4:SwitchES01_Pwr.current\x3a::
wird der fettmarkierte teil in den editor eingefügt und um das filelog-device ergänzt:

ZitatFileLog_SwitchES01:4:SwitchES01_Pwr.current\x3a::

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 August 2014, 21:05:04
ich habe logProxy_WeekProfile2Plot um einen optionalen vierten parameter ergänzt. hier kann eine regex angegeben werden um aus komplexeren Heating_Controll oder WeekdayTimer konfigurationen den zu plottenden wert aus der schalt anweisung zu extrahieren. zum beispiel so: #logProxy Func:logProxy_WeekProfile2Plot("myHeatingControll",$from,$to,"(\\d*)\$")
die maskierungen sind leider auf grund der verschachtelung nicht zu vermeiden.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 27 August 2014, 23:19:15
hallo andre,

ich möchte auf einer temperaturkurve den min-wert zum min-zeitpunkt mit einem punkt markieren. mit:

#logProxy ConstX:$data{currdate1},$data{min1}

bekomme ich den punkt, aber natürlich an der falschen stelle. leider geht nicht

#logProxy ConstX:$data{mindate1},$data{min1}

wie kann ich den entsprechenden zeitpunkt benennen/ermitteln?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 03:58:45
Hallo Andre,

es funktioniert nun. Hast Du echt gut gemacht  8)

Was jetzt auffällt, dass bei einem refresh der Graph nochmal refreshed wird. Im log sieht es dann so aus:
2014.08.28 03:52:41.922 3: logProxy_Get
2014.08.28 03:52:41.922 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:measured-temp
2014.08.28 03:52:41.936 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:desired-temp
2014.08.28 03:52:41.942 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:actuator
2014.08.28 03:52:41.955 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:humidity
2014.08.28 03:52:48.004 3: logProxy_Get
2014.08.28 03:52:48.004 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:measured-temp
2014.08.28 03:52:48.018 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:desired-temp
2014.08.28 03:52:48.023 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:actuator
2014.08.28 03:52:48.036 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-08-28_00:00:00 2014-08-29_00:00:01 Buero_TC:humidity
^


ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 08:33:38
Hallo Andre,

habe jetzt einen Großteil meiner gplots umgebaut. Läuft, würde ich sagen.

Folgendes habe ich nachgebaut und auch das funktioniert:
punkt ans ende des geplottenen bereiches eines anderen plots setzen:
  #logProxy DbLog:dbLog:s300ht:temperature::
  #logProxy ConstX:logProxy_shiftTime($data{currdate1},0),$data{currval1}+0.00001

  plot "<IN>" using 1:2 axes x1y1 title 'temp' ls l1 lw 1 with steps,\
       "<IN>" using 1:2 axes x1y1 ls l0 lw 1 with points,\


Nächste Herausforderung 'Wochenprofile'.
#logProxy Func:logProxy_WeekProfile2Plot("Buero_TC_Clima",$from,$to)

plot "<IN>" using 1:2 axes x1y1 title 'profile' ls l2 lw 1 with steps

Wohl zu einfach gedacht - funktioniert nämlich nicht.

Im log steht dann
2014.08.28 08:32:35.685 1: MyLogProxy: logProxy_WeekProfile2Plot("Buero_TC_Clima",$from,$to): Can't use string ("Buero_TC_Clima") as a HASH ref while "strict refs" in use at /opt/fhem/FHEM/98_logProxy.pm line 244.


ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 28 August 2014, 11:41:51
hallo walter,

bei mir funktioniert das mit einem hm-cc-tc genau so:

#logProxy Func:logProxy_WeekProfile2Plot("Thermostat.Keller_Climate",$from,$to)

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 11:53:50
Hallo Frank,

das scheint wieder an meinem Perl zu liegen. Einen ähnlichen Fehler hatte ich schon ein paar Antworten weiter oben. Andre meinte mein Perl sei zu pingelig. Konnte das Problem aber fixen. Ich warte mal ab.

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 28 August 2014, 12:15:48
hallo andre,

bei mir gibt es ein problem mit ähnlichen readingnamen im selben logfile und vom selben device. hier sind es die readings "humidity" und "humidityAbsolut". der plot von humidity nutzt beide readings. siehe anhang. die spitzen sind von humidity und die basiskurve ist humidityAbsolut.

#logProxy FileLog:FileLog_Broetje:4:Broetje.humidity::

@walter
ZitatAndre meinte mein Perl sei zu pingelig.
besorg dir mal eine vernünftige fritzbox, dann klappt es auch mit logproxy.  ;)

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 28 August 2014, 12:23:47
@walter: mach mal bitte ein list von deinem hm device.

@frank: du musst das reading genau genug spezifizieren. genau so wie bei filelog sonst auch. häng mal ein $ ans ende von humidity.

den zeitpunkt des min und max wertes liefern die log devices bis jetzt nicht. ich frage mal rudi und tobias ob sie einen patch der ein mindate und maxdate analog zu currdate einbaut annehmen.

tritt das doppelt plotten nur in der detail ansicht auf? oder auch in der raum übersicht? ich glaube da gibt es noch einem bug in fhemweb selber.

das wochenprofil sollte man mit steps plotten. nicht mit lines. dann schaut wirklich richtig aus :).

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 28 August 2014, 13:27:18
Zitat@frank: du musst das reading genau genug spezifizieren. genau so wie bei filelog sonst auch. häng mal ein $ ans ende von humidity.
$ geht nicht. aber jetzt weiss ich warum rudi da immer automatisch ein "\x3a" hinter den readingnamen hängt. damit funktioniert es. das problem bestand auch in der übersicht.

Zitatden zeitpunkt des min und max wertes liefern die log devices bis jetzt nicht. ich frage mal rudi und tobias ob sie einen patch der ein mindate und maxdate analog zu currdate einbaut annehmen.
das wäre natürlich spitzenklasse. da ich zur zeit versuche meinen keller durch lüften zu trocknen, könnte ich dadurch genauestens den zeitpunkt der minimalen, absoluten feuchte erkennen. ist sonst sehr schlecht zu erkennen, da diese kurve sehr flach verläuft.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 16:42:03
Hallo,

@Andre, hier das lst von Buero_TC_Clima
Internals:
   CFGFN      /opt/fhem/MyFHEM/HausErdgeschoss/Buero.cfg
   CHANGED
   DEF        1B3E3D02
   NAME       Buero_TC_Climate
   NR         764
   STATE      manual
   TYPE       CUL_HM
   chanNo     02
   device     Buero_TC
   peerList   Buero_FH,
   CHANGETIME:
   Helper:
     Dblog:
       Desired-temp:
         Mydblog:
           TIME       1409205199.6558
           VALUE      18.0
       State:
         Mydblog:
           TIME       1409236352.17975
           VALUE      0
   Readings:
     2014-08-28 07:53:19   CommandAccepted yes
     2014-08-22 07:43:38   R-controlMode   manual
     2014-08-22 07:43:38   R-day-temp      21 C
     2014-08-18 11:56:20   R-decalHr       6 h
     2014-08-18 11:56:20   R-decalMin      0 min
     2014-08-22 07:43:38   R-decalcDay     Sat
     2014-08-22 07:43:38   R-displayMode   temp-only
     2014-08-22 07:43:38   R-displayTemp   actual
     2014-08-22 07:43:38   R-displayTempUnit celsius
     2014-08-22 07:43:38   R-mdTempValve   auto
     2014-08-22 07:43:38   R-night-temp    17 C
     2014-08-22 07:43:38   R-party-temp    20 C
     2014-08-22 07:43:42   R_0_tempListSat 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_1_tempListSun 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_2_tempListMon 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_3_tempListTue 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_4_tempListWed 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_5_tempListThu 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_6_tempListFri 05:00 18.0 07:00 21.0 09:00 21.0 17:00 21.0 23:00 21.0 24:00 18.0
     2014-08-22 07:43:42   R_tempList_State verified
     2014-08-22 07:43:42   controlMode     manual
     2014-08-22 07:43:42   day-temp        21 C
     2014-08-22 07:43:42   decalcDay       Sat
     2014-08-28 07:53:19   desired-temp    18.0
     2014-08-22 07:43:42   displayMode     temp-only
     2014-08-22 07:43:42   displayTemp     actual
     2014-08-22 07:43:42   displayTempUnit celsius
     2014-08-22 07:43:42   night-temp      17 C
     2014-08-22 07:43:42   party-temp      20 C
     2014-08-28 07:51:10   peerList        Buero_FH,
     2014-08-28 07:53:19   recentStateType ack
     2014-08-28 16:37:33   state           0
   Helper:
     Role:
       chn        1
Attributes:
   TCsClimateStruct AllTCsClimate
   event-min-interval state:600
   event-on-change-reading state
   event-on-update-reading .*
   expert     1_on
   group      Buero_Fussboden,Buero_Heizung
   icon       temp_control
   model      HM-CC-TC
   peerIDs    00000000,1D7B1001,
   room       H-EG-R-Buero
   stateFormat R-controlMode
   webCmd     controlMode:desired-temp


@Frank, mein fhem kann sich ein eigenes Heim leisten und muss nicht bei einer FritzBox zur Untermiete wohnen  8)

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 17:02:02
Hallo Andre,

ich möchte dann noch auf Deine Umfrage antworten:
Zitathat überhaupt jemand verwendung dafür :)?
Ja, natürlich. Auch wennich aktuell nur für eine Option konkrete Pläne habe.

Zitateine option um am anfang/ende eines plots fehlende werte zu ergänzen
Ja, ich würde gerne das 'at' vor und nach 24:00 Uhr einstampfen und durch eine derartige Lösung ersetzen.

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: martinp876 am 28 August 2014, 20:50:13
Hallo Andre,

e klappt bei mit immer noch nicht.
Die Einstellungen hatte ich dir als Muster gesendet - genau die gehen nicht (bei mir).

Das profile wird übrigens sauber gefüllt, nur gemalt wird nichts.

Gruss Martin

p.s. habs geschaft, mein Fehler.
Die Darstellung ist aber falsch - das Paar Uhrzeit/temp besagt immer "bis zu diesem Zeitpunkt ist diese Temp zu wählen".
Du hast "ab diesem Zeitpunkt" programmiert
eine HM eigenart.

Danke
Martin
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 28 August 2014, 21:32:22
@frank: hab es eingebaut. patch für rudi und tobias kommt nächste woche. schaut dann z.b. so aus wie auf dem screenshot.

@walter: wir finden noch raus warum es bei dir nicht geht. aber auch erst nächste woche

@martin: schön das es geht. die zeitpunkte verschiebe ich noch.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 28 August 2014, 22:29:51
Hallo Andre,

ok, kein Problem. Ich hab hier noch ein paar andere Baustellen.

ciao
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 28 August 2014, 22:55:16
Zitathab es eingebaut. patch für rudi und tobias kommt nächste woche. schaut dann z.b. so aus wie auf dem screenshot.
besten dank. ich hatte im developer forum auch schon heimlich gelauscht.  :)

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: martinp876 am 29 August 2014, 12:22:26
Hi Andre,

für den TC-IT wäre es schön, jede der Listen darstellen zu können - das sind 3.
Meine Idee wäre, das mit einem trenner an das Device zu hängen - optional.

der Aufruf wäre z.B.
#logProxy Func:logProxy_WeekProfile2Plot("h_dctr_Climate",$from,$to,"","P3")


der Code müsste angepasst werden:
in logProxy_WeekProfile2Plot es zu Fehlern, wenn das Device nicht existiert, daher gleich mit:
sub
logProxy_WeekProfile2Plot($$$;$$)
{
  my ($profile, $from, $to, $regex,$l) = @_;

  return undef if( !$profile || !defined($defs{$profile}));

  if( $regex ) {
    eval { "test" =~ m/$regex/ };
    if( $@ ) {         
      Log3 undef, 3, "logProxy_WeekProfile2Plot: ". $regex .": ". $@;
      return undef;           
    }                 
  }

  if( $defs{$profile}{TYPE} eq "Heating_Control" ) {
    $profile = logProxy_Heating_Controll2WeekProfile($profile);
  } elsif( $defs{$profile}{TYPE} eq "WeekdayTimer" ) {
    $profile = logProxy_Heating_Controll2WeekProfile($profile);
  } elsif( $defs{$profile}{TYPE} eq "CUL_HM" ) {
    $profile = logProxy_HM2WeekProfile($profile,$l);
  } elsif( $defs{$profile}{TYPE} eq "MAX" ) {
    $profile = logProxy_MAX2WeekProfile($profile);
  } else {
    return undef;
  }

return if (!defined($profile));

und  für HM: incomplete list werden komplett ignoriert, list kann eingegeben werden, default ist P1
ZitatlogProxy_HM2WeekProfile($;$l)
{
  my ($d,$l) = @_;
  $l = "P1" if (!defined $l);
  my %profile = ();
  foreach(sort( grep /^R(_${l}_|_)._tempList...$/,keys %{$defs{$d}{READINGS}} )){
    my $i = $1 if ($_ =~ m/.*_(.)_tempList/);
    next if ($i > 7 || $i < 0);
    my %st = ();

    my @parts = split( ' ', ReadingsVal($d,$_,undef) );
    my ($time,$t2) = "00:00";
    while( @parts ) {
      $t2 = shift @parts;
      $st{$time} = shift @parts;
      $time = $t2;
    }
    $profile{$i} = \%st;
  }
  return (scalar (keys %profile) != 7)?undef:\%profile;
}

Schön fände ich, wenn man den Namen definieren kann - und dann mehrere Profile anzeigen kann. Als Namen konnte man entweder das Device nehmen oder ihn einfach als weiteren Parameter eingeben. Dann wäre ein mehrfaches aufrufen in einem File machbar?

#logProxy Func:logProxy_WeekProfile2Plot("h_dctr_Climate",$from,$to,"","P1")
#logProxy Func:logProxy_WeekProfile2Plot("h_dctr_Climate",$from,$to,"","P2")
#logProxy Func:logProxy_WeekProfile2Plot("h_dctr_Climate",$from,$to,"","P3")
.....
und andere Aktoren


Gruss Martin

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 29 August 2014, 14:18:01
ja. hab ich schon auf dem plan. kommt in der nächsten version. aber mit etwas anderer syntax.

ignore berücksichtige ich dann auch.

mehrere profile aus einem device geht dann die genau so. mehrere profile aus unterschiedlichen devices geht jetzt schon. die namen kannst du einfach in der plot zeile als titel angeben.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: RoBra81 am 01 September 2014, 10:27:50
Hallo,

ich wollte mir soeben auch mal den Verlauf der geplanten Soll-Temperatur meines HM-CC-RT-DN anzeigen lassen. Die Anzeige habe ich hinbekommen, aber da ist meiner Meinung nach ein Fehler drin: Im HM-CC-RT-DN steht immer erst der Bis-Zeitpunkt und dann die Soll-Temperatur:

R_0_tempListSat 08:00 18.0 18:00 14.0 24:00 18.0

=> bis 8:00 18°C, dann bis 18:00 14°C, ...

Im Plot wird daraus dann aber bis 18:00 18°C und dann bis 24:00 14°C.

Kann das jemand bestätigen?

Ronny
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 01 September 2014, 10:33:45
ZitatKann das jemand bestätigen?

Zitat von: martinp876 am 28 August 2014, 20:50:13
Die Darstellung ist aber falsch - das Paar Uhrzeit/temp besagt immer "bis zu diesem Zeitpunkt ist diese Temp zu wählen".
Du hast "ab diesem Zeitpunkt" programmiert
eine HM eigenart.

Zitat@martin: schön das es geht. die zeitpunkte verschiebe ich noch.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: PichlAlex am 01 September 2014, 16:27:30
ich muss leider eine Frage zwischendurchstellen da mich das Thema brennend interessiert (und ich selbst schon überlegt habe so etwas zu schreiben):

wie installiere ich logProxy? Ich kann leider nirgends etwas dazu finden...


*edit*
im ersten Beitrag (http://"http://forum.fhem.de/index.php/topic,26529.msg195056.html#msg195056") ist ganz am Ende nach den Screenshots ein Link zum Download der 98_logProxy.pm
Titel: logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 01 September 2014, 16:38:11
im ersten beitrag ist das file zum runterladen. das muss ins FHEM verzeichnis.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 01 September 2014, 17:16:07
@martin:

wie funktionieren die drei profile? wird eines davon aktiv geschaltet oder gilt die summe aus allen dreien?

d.h. reicht es wenn man sie einzeln plotten kann oder auch alle drei überlagert in einer einzigen kurve?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 03 September 2014, 20:28:47
im ersten beitrag gibt es eine neue version:

- die schaltzeiten für hm thermostate sollten jetzt richtig sein.

- für hm tc-it kann an den device namen durch komma getrennt der name der profil liste (P1,P2 oder P3) angehängt werden: #logProxy Func:logProxy_WeekProfile2Plot("myHM-TC-IT,P2",$from,$to)

- es gibt ein paar debug meldungen zusätzlich wenn es probleme mit dem auslesen des profils aus dem device gibt.

- die patches für mindate und maxdate sind hier: http://forum.fhem.de/index.php/topic,26108.msg196158.html#new (http://forum.fhem.de/index.php/topic,26108.msg196158.html#new) zu finden. damit lassen sich die daten für den min und max wert im plot z.b. so markieren:
#logProxy DbLog:dbLog:s300ht_1:temperature::
#logProxy ConstY:$data{avg1}
#logProxy ConstX:$data{mindate1},$data{min1}
#logProxy ConstX:$data{maxdate1},$data{max1}
#logProxy ConstX:$data{mindate1},$data{min1},$data{avg1}
#logProxy ConstX:$data{maxdate1},$data{max1},$data{avg1}

plot "<IN>" using 1:2 axes x1y1 title 'temp' ls l2 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'avg' ls l5 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 ls l0 lw 1 with points,\
     "<IN>" using 1:2 axes x1y1 ls l0 lw 1 with points,\
     "<IN>" using 1:2 axes x1y1 ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 ls l0 lw 1 with lines,\

das ganze schaut dann so aus:
(http://forum.fhem.de/index.php?action=dlattach;topic=26529.0;attach=18623)


was als nächstes kommt:

- ich werde für die wochenprofile einen eigenen typ in den column_spec vorsehen. die zeile aus dem beispiel oben wird dann so aussehen:#logProxy WeekProfile:myHM-TC-IT:P2

- das interpolieren und clippen beim ergänzen der werte am anfang und ende des plots. damit sollten die plot-abriss probleme der vergangenheit angehören

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 03 September 2014, 23:11:28
hallo andre,

ich bin gerade beim testen von mindate und maxdate. mit

#logProxy ConstX:$data{currdate1},$data{min1},$data{max1}

erhalte ich 2 punkte an der aktuellen position. das ist soweit io. aber sobald ich maxdate oder mindate eingebe wird gar nichts geplottet. auch mit nur einem y-wert kommt nichts.

da ich zum ersten mal gepatcht habe bin ich unsicher, ob alles funktioniert hat. meine dateien sind im anhang. ich würde aber behaupten das sollte funktioniert haben. übrigens, mit der aktuellen 98_SVG.pm funktioniert das patchen nicht. ich habe, wie im patch zu sehen, dann version 6446 genommen.

hier die versionsnummern
# $Id: 98_SVG.pm 5956 2014-05-24 13:04:04Z rudolfkoenig $
# $Id: 98_logProxy.pm 5750 2014-05-05 09:26:45Z justme1968 $


es müsste doch genügen, nur svg zu patchen. oder muss ich auch filelog patchen?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 03 September 2014, 23:26:03
du musst vor allem filelog und dblog patchen. in SVG ist nur die doku für die commandref.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 03 September 2014, 23:37:08
danke, bin schon dabei.  :)

edit:
funktioniert bestens. das thermostat-profil scheint auch zu funktionieren. eigentlich hatte ich das, das letzte mal auch schon gedacht.  ;) nach der anleitung in beitrag 1 hätte ich nun aber vermutet, dass die funktion für einen hm-cc-tc

logProxy_HM2WeekProfile("Thermostat.Keller_Climate",$from,$to)

wäre. funktionieren tut aber nur folgendes:

logProxy_WeekProfile2Plot("Thermostat.Keller_Climate",$from,$to)

sehe ich das richtig, dass wenn zb mehrere min punkte existieren, immer der am weitesten in der vergangenheit liegende, ausgewählt wird?

als letztes noch ein vorschlg zum clippen: kannst du die überstehenden kurventeile nicht einfach transparent machen oder verstecken? dann würde auch eine interpolation überflüssig werden. ausserdem wäre es aus meiner sicht eleganter, wenn man nicht einen festen zeitraum für die plotverlängerung wählen müsste, sondern einfach automatisch der nächste wert gesucht werden würde. bei fensterkontakten zb, kann man ja gar nicht abschätzen, wann der lezte wert gewesen sein könnte.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: maxritti am 04 September 2014, 12:59:09
Hi Andre,

gerade zufällig bin ich über Dein Modul gestolpert.
Ich finde das klasse und wollte es "mal eben" einsetzen.
Irgendwie stelle ich mich aber wohl zu doof an.

Ich habe DbLog (das Device heisst myDbLog) und in FHEM u.a. ein Plot, wo der Ertrag meiner PV Anlage ein wenig geglättet angezeigt wird.
In Abhängigkeit der Kurve möchte ich Rollos steueren. Klappt auch wunderbar.

Nun wollte ich die Schwellwerte, wo die Rollos geändert werden als horizontale Linie einzeichnen.
Da kommt logProxy doch gerade Recht dachte ich zumindest ;-)

Also habe ich mal ein LogProxy Device definiert, die gplot Datei vom ersten Chart kopiert, dann den Wert des Rollos mal rausgenommen.
Da kommt dann die Kurve im ersten Screenshot bei raus.

Internals:
   CFGFN
   NAME       myLP
   NR         1019
   STATE      Initialized
   TYPE       logProxy
Attributes:
   verbose    5


Hier die gplot des obersten Charts:


# Created by FHEM/98_SVG.pm, 2014-08-24 10:40:41
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Solarlog'
set ytics
set y2tics
set grid
set ylabel "Rollo"
set y2label "PV"
set yrange [0:110]

#DbLog mySL:Pac_avg
#DbLog EG_wz_RO_TerrasseRechts:pct
#DbLog EG_wz_RO_Carport:pct

plot "<IN>" using 1:2 axes x1y2 title 'Pac_avg' ls l5 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Terrasse' ls l1fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Carport' ls l2fill lw 1 with steps



Und wenn ich das nun richtig lese, muss doch die erste #DbLog Zeile einfach ausgetauscht werden in:

#logProxy DbLog:myDbLog:mySL:Pac_avg

Also komplett in:

# Created by FHEM/98_SVG.pm, 2014-09-04 12:48:34
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Solarlog'
set ytics
set y2tics
set grid
set ylabel "Rollo"
set y2label "PV"
set yrange [0:110]

#logProxy DbLog:myDbLog:mySL:Pac_avg

plot "<IN>" using 1:2 axes x1y2 title 'Pac_avg' ls l5 lw 1 with lines


Damit sollte doch dann zumindest die Pac Kurve angezeigt werden oder?
Das Chart allerdings bleibt leer. Keine Kurve mehr vom Pac. Schau mal in Screenshot 2.
Verbose habe ich mal auf 5 gesetzt, aber auch das Log sagt nichts.

Und das wo ich noch gar keine Konstante mit eingefügt habe.

Du kannst bestimmt aus der Pistole sagen, was hier falsch läuft oder?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 04 September 2014, 13:05:25
es sind immer zwei änderungen nötig um einen bestehen plot umzustellen:
- die colum_spec zeile im gplot file ändern
- und zusätzlich noch in der definition des SVG device myDbLog durch das logProxy device ersetzen.

zur Erklärung: im SVG device gibt es einen verweis auf das logdevice in dem die daten stehen. das jeweilige log device wird dann mit den column_spec attributen aufgerufen um an die daten zu kommen. dein SVG device muss aber nicht mehr DbLog aufrufen sondern das logProxy device. der teil fehlt dir. logProxy ruft dann über die modifizierte zeile unter anderem DbLog auf um an die daten zu kommen. diesen teil hast du.

gruss
  nadre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: maxritti am 04 September 2014, 13:13:49
Supi.
Ich wusste doch, dass es nur ne Kleinigkeit ist.
Da habe ich mal wieder nicht richtig gelesen.  :o
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 05 September 2014, 06:35:11
Hallo Andre,

habe eben nochmal logProxy in Verbindung mit
#logProxy Func:logProxy_WeekProfile2Plot("Buero_TC_Climate",$from,$to)
getestet und fhem in der Console gestartet.
Dabei ergibt sich Folgendes in der Console:
Useless use of subtraction (-) in void context at (eval 98) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 98) line 1.
Useless use of subtraction (-) in void context at (eval 98) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 98) line 1.
Useless use of a constant ("humidity") in void context at (eval 98) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 98) line 1.
Useless use of a constant ("actuator") in void context at (eval 98) line 1.
Useless use of subtraction (-) in void context at (eval 100) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 100) line 1.
Useless use of subtraction (-) in void context at (eval 100) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 100) line 1.
Useless use of a constant ("humidity") in void context at (eval 100) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 100) line 1.
Useless use of a constant ("actuator") in void context at (eval 100) line 1.
Useless use of subtraction (-) in void context at (eval 101) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 101) line 1.
Useless use of subtraction (-) in void context at (eval 101) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 101) line 1.
Useless use of a constant ("humidity") in void context at (eval 101) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 101) line 1.
Useless use of a constant ("actuator") in void context at (eval 101) line 1.
Useless use of subtraction (-) in void context at (eval 102) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 102) line 1.
Useless use of subtraction (-) in void context at (eval 102) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 102) line 1.
Useless use of a constant ("humidity") in void context at (eval 102) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 102) line 1.
Useless use of a constant ("actuator") in void context at (eval 102) line 1.
Useless use of subtraction (-) in void context at (eval 103) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 103) line 1.
Useless use of subtraction (-) in void context at (eval 103) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 103) line 1.
Useless use of a constant ("humidity") in void context at (eval 103) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 103) line 1.
Useless use of a constant ("actuator") in void context at (eval 103) line 1.
Useless use of subtraction (-) in void context at (eval 104) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 104) line 1.
Useless use of subtraction (-) in void context at (eval 104) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 104) line 1.
Useless use of a constant ("humidity") in void context at (eval 104) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 104) line 1.
Useless use of a constant ("actuator") in void context at (eval 104) line 1.
Useless use of subtraction (-) in void context at (eval 105) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 105) line 1.
Useless use of subtraction (-) in void context at (eval 105) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 105) line 1.
Useless use of a constant ("humidity") in void context at (eval 105) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 105) line 1.
Useless use of a constant ("actuator") in void context at (eval 105) line 1.
Useless use of subtraction (-) in void context at (eval 106) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 106) line 1.
Useless use of subtraction (-) in void context at (eval 106) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 106) line 1.
Useless use of a constant ("humidity") in void context at (eval 106) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 106) line 1.
Useless use of a constant ("actuator") in void context at (eval 106) line 1.
Missing argument in sprintf at /opt/fhem/FHEM/33_readingsGroup.pm line 612.
Invalid conversion in sprintf: end of string at /opt/fhem/FHEM/33_readingsGroup.pm line 612.
Useless use of subtraction (-) in void context at (eval 109) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 109) line 1.
Useless use of subtraction (-) in void context at (eval 109) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 109) line 1.
Useless use of a constant ("actuator") in void context at (eval 109) line 1.
Useless use of subtraction (-) in void context at (eval 111) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 111) line 1.
Useless use of subtraction (-) in void context at (eval 111) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 111) line 1.
Useless use of a constant ("actuator") in void context at (eval 111) line 1.
Useless use of subtraction (-) in void context at (eval 112) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 112) line 1.
Useless use of subtraction (-) in void context at (eval 112) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 112) line 1.
Useless use of a constant ("actuator") in void context at (eval 112) line 1.
Useless use of subtraction (-) in void context at (eval 113) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 113) line 1.
Useless use of subtraction (-) in void context at (eval 113) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 113) line 1.
Useless use of a constant ("actuator") in void context at (eval 113) line 1.
Useless use of subtraction (-) in void context at (eval 114) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 114) line 1.
Useless use of subtraction (-) in void context at (eval 114) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 114) line 1.
Useless use of a constant ("actuator") in void context at (eval 114) line 1.
Useless use of subtraction (-) in void context at (eval 115) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 115) line 1.
Useless use of subtraction (-) in void context at (eval 115) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 115) line 1.
Useless use of a constant ("actuator") in void context at (eval 115) line 1.
Missing argument in sprintf at /opt/fhem/FHEM/33_readingsGroup.pm line 900.
Invalid conversion in sprintf: end of string at /opt/fhem/FHEM/33_readingsGroup.pm line 900.
Useless use of subtraction (-) in void context at (eval 128) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 128) line 1.
Useless use of subtraction (-) in void context at (eval 128) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 128) line 1.
Useless use of a constant ("humidity") in void context at (eval 128) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 128) line 1.
Useless use of a constant ("actuator") in void context at (eval 128) line 1.
Useless use of subtraction (-) in void context at (eval 129) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 129) line 1.
Useless use of subtraction (-) in void context at (eval 129) line 1.
Useless use of a constant ("%.1f C") in void context at (eval 129) line 1.
Useless use of a constant ("humidity") in void context at (eval 129) line 1.
Useless use of a constant ("%.1f %") in void context at (eval 129) line 1.
Useless use of a constant ("actuator") in void context at (eval 129) line 1.

LG walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 05 September 2014, 09:12:22
ich kann keine meldung vom logProxy sehen. d.h. es gibt zumindest keinen fehler. was steht im fhem log?

gruss
  andre

ps: die readingsGroup meldungen schauen ich mir noch an.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 05 September 2014, 11:20:26
Hallo Andre,

habe die gplot-Datei vereinfacht, dass keine meiner Kommentare das Ergebnis beeinflußt.
# Created by FHEM/98_SVG.pm, 2013-09-19 12:14:57
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel "Zeit [h]"
set title '<TL>'
set ylabel '<L1>'
set y2label '<L2>'
set yrange [0:]
set y2range [0:]
set ytics nomirror
set y2tics
set grid y2tics

#logProxy DbLog:MyDbLog:<SPEC1>:measured-temp::
#logProxy constY:10

plot "<IN>" using 1:2 axes x1y1 title 'IST-Temperatur' ls l3 lw 2 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Linie 10' ls l5 lw 2 with lines

Das mit der konstanten Linie hat anfänglich funktioniert. Das tut jetzt auch nicht mehr. Habe nochmal die 98_logProxy.pm heruntergeladen und nach FHEM kopiert. Restart fhem. Gleiches Ergebnis - measured-temp wird angezeigt, constY:10 nicht.
Im fhem.log steht:
2014.09.05 11:12:27.790 3: logProxy_Get
2014.09.05 11:12:27.791 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-09-05_00:00:00 2014-09-06_00:00:01 Buero_TC:measured-temp::
2014.09.05 11:12:30.804 3: logProxy_Get
2014.09.05 11:12:30.804 4: MyLogProxy: calling get MyDbLog HISTORY INT 2014-09-05_00:00:00 2014-09-06_00:00:01 Buero_TC:measured-temp::


ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 05 September 2014, 11:24:40
könnte es sein das du die 10 linie nicht siehst weil sie schwarz ist und genau an der oberen kante des plots verläuft?

was passiert wenn du die gleiche achse wie für die temperatur verwendest? oder wenn du einen range von 0-20 vorgibst.


kannst du auf das 'Linie 10' label im plot klicken? wenn ja was passiert?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 05 September 2014, 11:31:04
Ne, trotzdem ein Fehler von mir - hab mich bei ConstY vertippt! Kleines 'c'. Ok, das funktionert wieder. Teste weiter und melde mich.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 05 September 2014, 11:32:49
ich baue eine log meldung ein damit das nicht mehr passieren kann :)

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 05 September 2014, 11:43:17
Also, wenn ich
#logProxy Func:logProxy_WeekProfile2Plot("Buero_TC_Climate",$from,$to)
dazu definiere. Kommt folgender Fehler im Browser (siehe screenshot)

In der Console und log taucht nichts auf was Zusätzliches zu dieser Situation liefert.

ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 18 September 2014, 16:25:42
Hallo Andre,

habe mal wieder ein paar Minuten darauf verwendet mein Problem hier zu untersuchen. Dabei bin ich zu folgender Lösung gekommen.

In Deinem einleitenden post gibts Du folgende Anleitung
Zitat#logProxy Func:logProxy_WeekProfile2Plot("myTcClimate",$from,$to)

Dies führt bei mir zu dem beschriebenen Fehler. Verwende ich einfachen Hochkommata
Zitat#logProxy Func:logProxy_WeekProfile2Plot('myTcClimate',$from,$to)
funktioniert die GEschichte.

Ergänzung:
#logProxy DbLog:MyDbLog:<SPEC1>:measured-temp:::
#logProxy DbLog:MyDbLog:<SPEC1>:desired-temp:::
#logProxy DbLog:MyDbLog:<SPEC1>:actuator:::
#logProxy DbLog:MyDbLog:<SPEC1>:humidity:::
#logProxy Func:logProxy_WeekProfile2Plot('<SPEC2>',$from,$to)

Auch das funktioniert - SPEC1 ist das device, SPEC2 der Climate-Channel-

Danke für Deine Unterstützung
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 September 2014, 17:10:08
ich kann mir zwar gerade nicht im geringsten vorstellen wie das sein kann aber schön das es erst mal geht.

hoffentlich komme ich am wochenende oder nächste woche dazu das interpolieren am anfang und ende des plots gegen den plotabriss einzubauen.

dann würde ich diese version posten und wenn es genügend interessenten gibt auch einchecken.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 19 September 2014, 17:22:24
Zitatdann würde ich diese version posten und wenn es genügend interessenten gibt auch einchecken.
ich bin dafür!  :)

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Thomas_Homepilot am 15 Oktober 2014, 09:55:53
Hallo,

habe gerade mal dein Modul ausprobiert, um meine Plots ab Anfang zu ergänzen (mit extend). Die Plots werden jetzt allerdings über den Rand gezeichnet. Ich gehe davon aus, dass Du dieses Verhalten mit
ZitatTODO: plot am fenster clipen und nicht drüber hinaus zeichen
meinst. Bist Du hier schon weitergekommen? Ansonsten liefert Dein Modul eine Menge Möglichkeiten, die ich vorher vermisst hab. Vielen Dank!

Gruß
Thomas
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 Oktober 2014, 11:17:20
ja. genau das habe ich damit gemeint.

ich weiss schon wie aber es ist noch nicht fertig. wenn der harmony hub läuft kommt logProxy wieder dran.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 24 Oktober 2014, 12:34:34
Zitat von: justme1968 am 04 September 2014, 13:05:25
es sind immer zwei änderungen nötig um einen bestehen plot umzustellen:
- die colum_spec zeile im gplot file ändern
- und zusätzlich noch in der definition des SVG device myDbLog durch das logProxy device ersetzen.

zur Erklärung: im SVG device gibt es einen verweis auf das logdevice in dem die daten stehen. das jeweilige log device wird dann mit den column_spec attributen aufgerufen um an die daten zu kommen. dein SVG device muss aber nicht mehr DbLog aufrufen sondern das logProxy device. der teil fehlt dir. logProxy ruft dann über die modifizierte zeile unter anderem DbLog auf um an die daten zu kommen. diesen teil hast du.

gruss
  nadre

Irgendwie stehe ich auf dem Schlauch. Ich habe genau das gleiche Problem wie maxritti. Wo stelle ich denn das Device um? Bei Type? Da kann ich doch Garnichts ändern?

Hilfe... :(
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 24 Oktober 2014, 13:09:01
im define des SVG devices gibst du das log device an:define <name> SVG <logDevice>:<gplotfile>:<logfile> und hier musst du statt des fileLog oder DbLog devices das logProxy device angeben.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 25 Oktober 2014, 18:44:49
unglaublich, aber ich scheine tatsächlich zu blöd dafür zu sein.

Mein Plot hat nach der Änderung nur noch diesen Inhalt:

XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: http://192.168.178.22:8083/fhem/SVG_showLog?dev=SVG_FileLog_Heizung.WZ.C_1&logdev=logProxy&gplotfile=SVG_FileLog_Heizung.WZ.C_1&logfile=FileLog_Heizung.WZ.C&pos=
Zeile Nr. 2, Spalte 1:

Ich will doch nur meine ganzen Thermostate Logs in ein schönes Plot... ich probier schon 2 Stunden rum :(

So sieht meine SVG_FileLog_Heizung.WZ._1.gplot aus:
# Created by FHEM/98_SVG.pm, 2014-10-25 18:39:07
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Humidity"
set y2label "Temperature"

#logProxy FileLog:FileLog_Heizung.DG_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.SZ_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.Bad_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.A_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.B_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.C_Clima:4:.*::

plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 1 with lines
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 25 Oktober 2014, 18:46:28
zeig mal alle defines der beteiligten SVG, FileLog, DbLog und logProxy devices sowie das gplot file.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 25 Oktober 2014, 18:50:41
Das logproxy device habe ich wie in deiner Anleitung erstellt

define lp logProxy

Mein GPLOT (muss ich natürlich noch umnennen, habe quasi aus dem FileLog eines Thermostates ein gplot erstellt):
# Created by FHEM/98_SVG.pm, 2014-10-25 18:39:07
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Humidity"
set y2label "Temperature"

#logProxy FileLog:FileLog_Heizung.DG_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.SZ_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.Bad_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.A_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.B_Clima:4:.*::
#logProxy FileLog:FileLog_Heizung.WZ.C_Clima:4:.*::

plot "<IN>" using 1:2 axes x1y2 title 'Line 1' ls l0 lw 1 with lines


Das FileLog schaut so aus:
./log/Heizung.WZ.C-%Y.log Heizung.WZ.C_Clima:T:.*

Sonst noch was?

Danke für deine Hilfe!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 25 Oktober 2014, 18:51:50
das SVG device.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 25 Oktober 2014, 18:56:37
Sorry und Danke :)

SVG:

logProxy:SVG_FileLog_Heizung.WZ.C_1:FileLog_Heizung.WZ.C
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 25 Oktober 2014, 20:51:29
auf die schnelle sind mir nur zwei dinge aufgefallen:

- mach mal bitte aus dem SVG device ein:logProxy:SVG_FileLog_Heizung.WZ.C_1:CURRENT

- ansonten brauch dein plot file natürlich für jede #logProxy zeile auch eine zugehörige plot zeile.

wenn das noch nicht hilft bitte mal verbose 5 einschalten und schauen was im log steht.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 26 Oktober 2014, 07:32:41
Dann ist mein Plot leer und folgendes steht mit verbose 5 in der log

2014.10.26 07:29:55 4: Connection accepted from FHEMWEB:193.197.148.126:3627
2014.10.26 07:29:55 4: HTTP FHEMWEB:193.197.148.126:3627 GET /fhem/SVG_showLog?dev=SVG_FileLog_Heizung.WZ.C_1&logdev=logProxy&gplotfile=SVG_FileLog_Heizung.WZ.C_1&logfile=CURRENT&pos=
2014.10.26 07:29:55 5: plotcommand: get logProxy CURRENT INT 2014-10-26_00:00:00 2014-10-27_00:00:01
2014.10.26 07:29:55 5: Cmd: >get logProxy CURRENT INT 2014-10-26_00:00:00 2014-10-27_00:00:01<
2014.10.26 07:29:55 1: PERL WARNING: Use of uninitialized value in hash element at fhem.pl line 1494.
2014.10.26 07:29:55 4: /fhem/SVG_showLog?dev=SVG_FileLog_Heizung.WZ.C_1&logdev=logProxy&gplotfile=SVG_FileLog_Heizung.WZ.C_1&logfile=CURRENT&pos= / RL:21 / image/svg+xml / Content-Encoding: gzip


kurz danach finde ich in der Weboberfläche nicht mal mehr mein Plot. Das ist einfach verschwunden. Im Log steht dafür folgendes:

2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
2014.10.26 07:36:42 1: Error: logProxy has no TYPE
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 26 Oktober 2014, 09:10:10
häng mal bitte eine abgespeckte config und alle relevanten log und plot files direkt als attacent hier an damit es ich nachstellen kann.

ich glaube irgendwo ist nur ein name falsch.

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 27 Oktober 2014, 15:46:56
ZitatlogProxy:SVG_FileLog_Heizung.WZ.C_1:FileLog_Heizung.WZ.C
für "logProxy" musst du natürlich den namen deines logproxy devices eingeben. also "lp", weil du es so genannt hast:

define lp logProxy
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 Oktober 2014, 16:09:25
ja ...
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: olli84 am 27 Oktober 2014, 17:37:02
ohje. Das war es. Danke.  :-*   ::) :-*
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: maxritti am 07 November 2014, 11:49:02
Hallo zusammen,

bei mir im Log ist mir gerade eine der schon tausendfach angesprochenen Perl Warnungen aufgefallen.

Und zwar erhalte ich, wenn ich im FHEMWEB mein logProxy Device öffne folgenden Stacktrace:

2014.11.07 11:15:07.684 1: PERL WARNING: Use of uninitialized value $outf in string eq at ./FHEM/98_logProxy.pm line 398.
2014.11.07 11:15:07.685 3: stacktrace:
2014.11.07 11:15:07.685 3:     main::__ANON__                      called by ./FHEM/98_logProxy.pm (398)
2014.11.07 11:15:07.685 3:     main::logProxy_Get                  called by fhem.pl (2923)
2014.11.07 11:15:07.685 3:     main::CallFn                        called by fhem.pl (1502)
2014.11.07 11:15:07.686 3:     main::CommandGet                    called by fhem.pl (2100)
2014.11.07 11:15:07.686 3:     main::getAllGets                    called by ./FHEM/01_FHEMWEB.pm (1002)
2014.11.07 11:15:07.686 3:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (737)
2014.11.07 11:15:07.686 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.11.07 11:15:07.687 3:     main::FW_Read                       called by fhem.pl (2923)
2014.11.07 11:15:07.687 3:     main::CallFn                        called by fhem.pl (598)


Daraufhin habe ich in dem logProxy Modul mal ein wenig geschaut und bin für mich zu folgender Änderung gekommen.

Derzeitige Stand ab Zeile 398:

  if($outf eq "INT") {
    $outf = "-";
    $internal = 1;
  }


Ich habe dnn einfach mal das $outf abgefragt, ob dies definiert ist.

  if (defined $outf) {
    if($outf eq "INT") {
      $outf = "-";
      $internal = 1;
    }
  }


Scheint bei mir auch soweit zu klappen, denn die Warnung und der Stacktrace sind weg und die Plots sehen gut aus.

Kannst Du das mal prüfen, ob das allgemein in Dein Modul mit aufgenommen werden kann/sollte?

Eventuell klappt der Patch hier?

398,400c398,402
<   if($outf eq "INT") {
<     $outf = "-";
<     $internal = 1;
---
>   if (defined $outf) {
>     if($outf eq "INT") {
>       $outf = "-";
>       $internal = 1;
>     }
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 07 November 2014, 13:14:27
bitte zeig mir mal die sog definition und das gplot file. ich meine das $outf normalerweise nicht undef sein kann.

ich baue die prüfung aber ein. eventuell ist ein hinweis auf die ursache sinnvoll.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: maxritti am 07 November 2014, 15:43:06
Sorry. Eigentlich wollte ich das auch noch dran gehangen haben.

list myLP:

Internals:
   CFGFN
   NAME       myLP
   NR         159
   STATE      Initialized
   TYPE       logProxy
Attributes:


Oder in fhemweb siehe Screenshot.

GPlot:

# Created by FHEM/98_SVG.pm, 2014-09-16 20:27:10
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'PV-Leistung / Rollos'
set ytics
set y2tics
set grid
set ylabel "Rollo"
set y2label "PV"
set yrange [0:110]

#logProxy DbLog:myDbLog:mySL:Pac_avg
#logProxy DbLog:myDbLog:EG_wz_RO_TerrasseRechts:pct
#logProxy DbLog:myDbLog:EG_wz_RO_Carport:pct
#logProxy DbLog:myDbLog:myTL:carporton
#logProxy ConstY:700
#logProxy ConstY:1000
#logProxy ConstY:1500
#logProxy ConstY:2100

plot "<IN>" using 1:2 axes x1y2 title 'Pac_avg' ls l5 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Terrasse rechts' ls l1 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Carport' ls l2fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Carporton' ls l4fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 notitle ls l4 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 notitle ls l4 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 notitle ls l3 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 notitle ls l3 lw 1 with steps
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 08 November 2014, 12:21:49
Hallo Andre,

ich bekomme bei jedem FHEM-Reboot Perl Warnings in Log geschrieben. Anscheinend haben die etwas mit dem logProxy Modul zu tun. Hab alle Plots kommentiert, Warnings Weg, "normale" SVG Plots auskommentiert, Warnings Weg, ein logProxy Plot auskommentiert, Warnings da.

Vielleicht kannst du dir das mal ansehen. Ab hier: http://forum.fhem.de/index.php/topic,28393.msg212830.html#msg212830


Grüße


Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 08 November 2014, 14:21:07
ich schau es mir an.
Titel: logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 09 November 2014, 21:40:01
ein kurzes update zwischendurch: ich denke/hoffe das ich nächste woche eine version so weit habe bei der die werte die rechts und links über den plotbereich hinaus gehen sauber abgeschnitten werden und der plotabriss dann ohne addLog sauber vermieden werden kann.

bis dahin noch eine kurze spielerei mit der idee von hier: http://forum.fhem.de/index.php/topic,23912.0.html (http://forum.fhem.de/index.php/topic,23912.0.html) zum plotten der sonnenauf- und -untergangszeit. aber ohne zu loggen sondern 'live' berechnet.

dahinter steckt eine logProxy_Func2Plot funktion der man beliebige andere funktionen übergeben kann die dann wiederholt für die einzelnen punkte in einem plot aufgerufen wird. die anzahl der aufrufe ist konfigurierbar und hängt im default fall vom zoomfaktor ab. d.h. bei einem jahres- und monatsplot wird der wert täglich bestimmt, bei wochen- und tagesplot stündlich, usw.

die relevante teil der plot definition sieht dann so aus:

#logProxy Func:logProxy_Func2Plot($from,$to,'{hms2dec(sunrise_abs_dat($sec))}')
#logProxy Func:logProxy_Func2Plot($from,$to,'{hms2dec(sunset_abs_dat($sec))}')
                                                             
plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l2 lw 1 with steps,\
plot "<IN>" using 1:2 axes x1y2 title 'Somnnenuntergang' ls l0 lw 1 with steps

gruss
  andre

edit: die aktuelle Version ist im wiki beschrieben: http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 10 November 2014, 10:14:20
Zitatich denke/hoffe das ich nächste woche eine version so weit habe bei der die werte die rechts und links über den plotbereich hinaus gehen sauber abgeschnitten werden und der plotabriss dann ohne addLog sauber vermieden werden kann.
das hört sich gut an.  :)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 12 November 2014, 21:42:09
ich habe im ersten post die (hoffentlich) letzte version vor dem einchecken angehängt:
- das clippen am rand des plots für extend ist eingebaut.
- gibt die option interpolate. damit wird interpoliert statt einfach nur den vorherigen/nächsten wert auf den rand zu schieben.
- beispielfunktion logProxy_Func2Plot ist eingebaut
#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_hms2dec(sunrise_abs_dat($sec))}')
#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_hms2dec(sunset_abs_dat($sec))}')

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 15 November 2014, 20:16:08
Hallo Andre,

Zitat von: justme1968 am 09 November 2014, 21:40:01der plotabriss dann ohne addLog sauber vermieden werden kann.

Hast du ein bitte ein Beispiel dazu? Meine Idee wäre zB
#logProxy FileLog:FileLog_wzHeizungSollTemp,extend=120:4:desired\x3a::
aber das klappt nicht, siehe Anhang.

Grüße

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 November 2014, 20:25:14
doch eigentlich genau so.

aber die werte werden nicht 'in die zukunft' erweitert. da war ich mir nicht sicher ob das sinnvoll ist weil man dann nicht mehr sieht wann der tatsächlich letzte wert gekommen ist. dafür kann ich aber noch eine extra option einbauen den letzten vorhandenen wert auf jeden fall bis zur aktuellen zeit zu plotten.

unabhängig davon würden die von dir angegeben 120 sekunden auch nicht reichen da der letzte wert schon eine stunde alt ist.

du solltest den unterschied deutlich sehen wenn du in deinen plot reinzoomst und einmal mit und ein mal ohne extend zurück scrollst.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 15 November 2014, 20:46:42
Ok jetzt erst verstehe ich richtig was extend bewirkt  8)

Zitat von: justme1968 am 15 November 2014, 20:25:14
dafür kann ich aber noch eine extra option einbauen den letzten vorhandenen wert auf jeden fall bis zur aktuellen zeit zu plotten.
Das wäre super, danke! Die addLog Funktion geht mir gegen den Strich, eigentlich will ich möglichst kleine Log Files haben, andererseits sind komplette Plots auch recht schön :)

Ein "Problem" hab ich noch. Der Plot Editor zeigt maximal 8 gplot Zeilen an. Bisher war kaum anzunehmen das jemand mehr als 8 Kurven in einem Plot zeichnet, aber mit LogProxy kommt da schnell was zusammen wenn man sich zB auch Striche und Punkte anzeigen lassen will. Normaleweise editiere ich alle Dateien mit eclipse aber bei kleinen Änderungen/Versuchen nehme ich da schon gerne den Plot Editor und wenn mehr als 8 Zeilen vorhanden sind hat der mir die gplot Datei zusammen. Ich hab dann mal nachgesehen und bin auf diese Zeile (313 98_SVG.pm) gestoßen:
$max = 8 if($max > 8);
ein zB
$max = 15 if($max > 15);
bringt nicht wirklich was, siehe Anhang. Da muss es irgendwo noch eine Einstellung geben, hab sie aber bisher nicht gefunden. Vielleicht kannst du dir das, wenn du Zeit und Muse hast, mal ansehen.


Grüße
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 November 2014, 21:03:37
extend nimmt den bereich der dargestellt wird, erweitert ihn nach rechts und links um die angegebene zahl an sekunden und such dann in diesem bereich rechts und links jewels den wert der am nächsten am plot bereich liegt und verwendet diesen als anfang oder end wert. das passt dann für steps. oder wenn interpolate gesetzt ist wird zwischen diesen gefunden und dem ersten echten bzw. letzen plot wert interpoliert um den wert für den anfang oder das ende zu finden.

das könnte man zwar theoretisch noch etwas optimieren in dem man bei dbblog tatsächlich mit limit 1 den jewels ersten bzw letzen wert vor und nach dem bereich sucht aber das würde spätestens bei filelog nicht mehr gehen. und was den overhead durch den fest vorgegebenen bereich angeht: in den aller meisten fällen ist er klein im vergleich zum plot bereich. d.h. wenn ein sensor z.b. nur jede stunde einen wert liefert und man mit extend um 1 oder zwei stunden vergrössert macht das bei einem tages plot relativ gesehen zwar viel aus da zwar unter umständen fast 20% an bereich dazu kommt. da es aber nur um insgesamt 28 statt 24 werte geht ist das absoult insgesamt so wenig das es nichts aus macht. wenn man auf jahresebene plottet fallen die zusätzlichen 4 stunden weder relativ noch absolut ins gewicht.

zum komplett: die plots sind jetzt auch komplett. es wird nur nichts über die aktuelle zeit hinaus 'dazu erfunden'.

das mit dem editor schaue ich mir an. eigentlich wäre es ideal wenn alle zeilen angezeigt werden und es einen knopf gibt um eine neue zeile hinzuzufügen. mal sehen wie aufwändig das ist. ansonsten gibt es jeweils in filelog, dblog und logproxy noch die SVG_sampleDataFn die auch die begrenzung auf 8 eingebaut hat. mach für den logProxy da auch mal 15 draus.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 15 November 2014, 21:17:44
Zitat von: justme1968 am 15 November 2014, 21:03:37
d.h. wenn ein sensor z.b. nur jede stunde einen wert liefert und man mit extend um 1 oder zwei stunden vergrössert macht das bei einem tages plot relativ gesehen zwar viel aus da zwar unter umständen fast 20% an bereich dazu kommt. da es aber nur um insgesamt 28 statt 24 werte geht ist das absoult insgesamt so wenig das es nichts aus macht. wenn man auf jahresebene plottet fallen die zusätzlichen 4 stunden weder relativ noch absolut ins gewicht.
Ok verstehe ich, in diesem Fall ist es aber eine Soll-Temperatur. Diese ändert sich im Normalfall nur 2-3 mal Tag bzw. wenn die Fenster geöffnet werden. Da kann es dann sein das der letzte Wert mehrere Stunden her ist und das sieht im Tages Plot nicht schön aus. Deshalb verwende ich bisher bei den Soll Temperaturen die addLog() Funktion was aber wiederum zu unnützen Log Einträgen führt.

Zitat von: justme1968 am 15 November 2014, 21:03:37
zum komplett: die plots sind jetzt auch komplett. es wird nur nichts über die aktuelle zeit hinaus 'dazu erfunden'.
Stimmt schon, hab mich schlecht ausgedrückt.

Zitat von: justme1968 am 15 November 2014, 21:03:37
eigentlich wäre es ideal wenn alle zeilen angezeigt werden und es einen knopf gibt um eine neue zeile hinzuzufügen. mal sehen wie aufwändig das ist. ansonsten gibt es jeweils in filelog, dblog und logproxy noch die SVG_sampleDataFn die auch die begrenzung auf 8 eingebaut hat. mach für den logProxy da auch mal 15 draus.
Stimme ich dir vollkommen zu. Die Änderung im logProxy Modul hat funktioniert. Nun werden mir alle 13 Zeilen angezeigt. Danke für den Tipp!

Grüße
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 November 2014, 21:24:39
ich baue die option ein den letzen wert entweder um maximal  den extend zeitraum oder auf jeden fall bis zum aktuellen zeitpunkt zu erweitern.

wenn deine solltenperatur aus einem hm oder max thermostaten oder aus heatingcontrol oder WeekdayTimer kommt kannst du auch direkt diese werte plotten ohne das sie aus dem log kommen sondern live aus dem device. dann gibt es das abriss problem überhaupt nicht.

das geht natürlich nicht wenn du nicht die beabsichtige sondern die (durch das fenster beeinflusste) tatsächliche solltenperatur plotten willst.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 15 November 2014, 21:49:33
Zitat von: justme1968 am 15 November 2014, 21:24:39
ich baue die option ein den letzen wert entweder um maximal  den extend zeitraum oder auf jeden fall bis zum aktuellen zeitpunkt zu erweitern.
Danke!

Zitat von: justme1968 am 15 November 2014, 21:24:39
wenn deine solltenperatur aus einem hm oder max thermostaten oder aus heatingcontrol oder WeekdayTimer kommt kannst du auch direkt diese werte plotten ohne das sie aus dem log kommen sondern live aus dem device. dann gibt es das abriss problem überhaupt nicht.

das geht natürlich nicht wenn du nicht die beabsichtige sondern die (durch das fenster beeinflusste) tatsächliche solltenperatur plotten willst.
Die (beeinflusste) Solltemperatur kommt bei mir von ein eigenes Hilfsmodul in dem ich SollTemp Zeiten eingeben kann und das auch auf meine Fensterkontakte reagiert und entsprechend absenkt. In dem Modul hab ich meine unzähligen Heizungs at's und notifys verstaut um der FHEM-Modul Programmierung näher zu kommen.
Das Live-Werte plotten geht wusste ich noch gar nicht, das werde ich aber mal versuchen.

Grüße
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 November 2014, 21:57:17
schau dir mal logProxy_WeekProfile2Plot in der doku und im modul an. weiter vorne im thread gibt es auch beispiele. damit kannst du für die oben angegebenen device direkt das wochenprofil plotten. es gibt für hm, max und heatingcontroll/weekdaytime jewels eine funktion die die interne liste aufbereitet. das kannst du für den modul auch so machen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 15 November 2014, 22:30:53
Mach ich. Danke!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 November 2014, 22:48:00
ich habe die version im ersten post noch mal aktualisiert. es gibt jetzt die option predict[=wert]. damit wird der letzte wert bis zum ende eines plots verlängert oder um wert sekunden. aber jeweils maximal bis zum aktuellen zeitpunkt.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fhainz am 16 November 2014, 14:39:08
funktioniert super, danke!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 November 2014, 17:50:16
ich habe das modul eben eingecheckt. es ist ab morgen im update enthalten.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 13:21:46
Sehr schönes Modul, Andre
das musste ich gleich mal testen  8)
Funktioniert soweit sehr gut, bis auf eins:

Ich habe ein Logfile in dem Anwesenheiten stehen:

2014-11-13_03:00:56 Technisat present
2014-11-13_03:06:09 TV absent
2014-11-13_04:02:20 TV present
2014-11-13_04:07:34 TV absent
2014-11-13_09:49:59 TV present
2014-11-13_10:05:11 PC1 present
2014-11-13_10:30:37 PC1 absent
2014-11-13_10:35:40 PC1 present
2014-11-13_18:35:25 TV absent
2014-11-13_19:31:07 PC1 absent


Das bekomme ich  mit
...
#logProxy FileLog:presentlog:3:TV.*::$fld[2]=~"present"?1:0
...


auch dargestellt.

Allerdings scheint extend und predict bei Text nicht zu funktionieren.
Egal, ob ich diese Optionen einbinde oder nicht, der Plot wird nur zwischen erstem umd letztem Ereigniss des Tages angezeigt.

Grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 November 2014, 13:26:32
welchen zeitraum hast du bei extend angegeben?

setz den wert zum testen ruhig recht hoch. also z.b. extend=60*60*24 für einen ganzen tag.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 14:04:04
Habe den absoluten Wert genommen, aber das sollte auch gehen:
#logProxy FileLog:presentlog,extend=86400:3:TV.*::$fld[2]=~"present"?1:0

Ich sehe gerade, wenn ich die gestrigen Werte anschaue, dann wird die Linie bis zum Tagesende gezogen.
Aber der Beginn ist nach wie vor am ersten Ploteintrag des Tages.
Mir ist noch aufgefallen, das der Plot um 24:00 ein Umschalten zu presence zeigt, obwohl dies erst am nächten Tag um 3 Uhr erfolgt. Lässt sich das so einstellen, das der Letzte Wert bis Plotende übernommen wird?

Grüße
Klaus
PS: im Plot ist nur TV mit extend versehen
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 November 2014, 17:14:28
ich stelle es mal heute abend mit meinem fernseher nach. an den texten sollte es aber nicht liegen das wird schon auf der ebene darunter (FileLog oder DbLog) behandelt.

ist das verhalten gleich wenn du in den plot hinein zoomst? fehlt dann auch jeweils der anfang?

das 24uhr problem lässt sich noch nicht einfach einstellen. da bin ich noch dabei mir etwas zu überlegen. vermutlich werden ich die linke und rechte kante unterschiedlich behandeln wenn interpolate nicht gesetzt ist. das sollte dann besser zum plot mode steps passen.

gruss
  andre

edit: änder mal bitte die zeile 563 von my $value = $next_value; in my $value = $prev_value;das sollte das 24uhr problem lösen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 17:57:10
$next_value zu $prev_value hat die gewünschte Veränderung gebracht.

Beim hineinzoomen fehlt auch der Anfang.

predict funktioniert da auch nicht

Grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 November 2014, 18:01:29
predict ist nur fürs ende des plots und nur wenn es keinen 'echten' nächste wert gibt.

für den anfang (und das ende) ist extend zuständig.

die $prev_value änderug habe ich eben eingecheckt.

das andere schaue ich mir noch an.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 18:23:10
Zitat von: justme1968 am 17 November 2014, 18:01:29
predict ist nur fürs ende des plots und nur wenn es keinen 'echten' nächste wert gibt.
Genau das meine ich,
z.B. am heutigen Tag war der Fernseher gegen 4 kurz an um das Programm zu aktualisieren.
Im Logfile steht drin:
2014-11-17_04:02:14 TV present
2014-11-17_04:22:39 TV absent

mit predict wollte ich erreichen, das die linie bis zur aktuellen Uhrzeit gezeichnet wird.
Aber sie hört jetzt (18:00) iimer noch bei 4:22 auf

Zitat von: justme1968 am 17 November 2014, 18:01:29
die $prev_value änderug habe ich eben eingecheckt.
super, danke

grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 November 2014, 21:14:11
ich denke ich habe es gefunden. bei werten die 0 sein können reicht es natürlich nicht mit if($x) zu prüfen sondern es sollte schon if( defined($x) sein. d.h. es hatte nichts mit dem text zu tun sondern damit das der wert am anfang des tages 0 war.

so schaut es jetzt bei mir aus. oben ohne logProxy features, unten mit extend und predict. im log sind genau die die 5 sichtbaren werte von heute und einer von gestern.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 22:32:41
Schön, das du es gefunden hast.
Ich stehe aber auf dem Schlauch. Muss ich das irgendwo ändern oder ist es deinem Modul?

Grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 November 2014, 22:33:35
kommt morgen mit dem update.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 17 November 2014, 22:34:34
Zitat von: justme1968 am 17 November 2014, 22:33:35
kommt morgen mit dem update.
super, so schnell kann ich nicht mal reload drücken  8)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 18 November 2014, 09:45:47
Hallo Andre,

die Linien sind jetzt da. Sowohl extend als auch predict funktionieren bei mir.

Eine Frage noch, wie hast Du die Kurven bei dir gestapelt? Also übereinander dargestellt...

Grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 November 2014, 09:54:05
zur zeit noch einfach von hand. d.h. für die zweite $fld[2]=~"present"?3:2 verwendet.

ich überlege ob ich auch noch ein shift in y richtung einbaue.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: klausw am 18 November 2014, 13:26:09
Zitat von: justme1968 am 18 November 2014, 09:54:05
zur zeit noch einfach von hand. d.h. für die zweite $fld[2]=~"present"?3:2 verwendet.

ich überlege ob ich auch noch ein shift in y richtung einbaue.

Danke für den Tip. Eine shift Option würde das Ganze natürlich vereinfachen.

Mir ist noch eine Kleinigkeit aufgefallen.
Wenn am aktuellen Tag noch kein Ereignis aufgetreten ist, dann wird die Linie trotz predict bis zum Tagesende durchgezogen.

Grüße
Klaus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 04:43:16
This looks to be very versatile module, I have read and re-read the thread and the wiki many times but my lack of German has not helped - google hasn't helped much either though I usually manage with it.

I thought I would start with something simple - plot a weekprofile for one of my MAX HeatingThermostats, but I can't even manage that!

The device is named MAX_075bb2, its log is FileLog_MAX_075bb2

I have defined the logProxy device
define myProxy logProxy

created a .gplot file, named my_logP.gplot, containing

#logProxy Func:logProxy_WeekProfile2Plot("MAX_075bb2",$from,$to)

plot "<IN>" using 1:2 axes x1y1 title 'profile' ls l2 lw 1 with steps


It seems I need to call this with something like
define myTest SVG myProxy:my_logP:FileLog_MAX_075bb2

but I see no plot.

Editing some of the log 3 lines in the module shows it is parsing the weekprofile OK

Can anyone tell me where I'm going wrong please?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 21 November 2014, 10:22:16
the logfle is not needed as the weekprovile is read from the device readings directly. so the SVG define should bedefine myTest SVG myProxy:my_logP:CURRENTbut that is probably not the problem.

please show me a 'list' of the MAX_075bb2 device.

what do you get in the log if you enable Log 3 in the line 243 ?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 10:45:43
I wasn't sure about the logfile from looking at the module code. I removed it with no difference but put it back just in case :)

Zitatbut that is probably not the problem.

No difference with CURRENT.

list MAX_075bb2
Internals:
   CHANGED
   DEF        HeatingThermostat 075bb2
   IODev      ml
   LASTInputDev ml
   MSGCNT     1360
   NAME       MAX_075bb2
   NR         216
   STATE      18.0 °C
   TYPE       MAX
   addr       075bb2
   backend    ml
   dstsetting 1
   ml_MSGCNT  1360
   ml_TIME    2014-11-21 09:32:30
   mode       0
   rferror    0
   serial     KEQ0151254
   type       HeatingThermostat
   Readings:
     2014-11-21 09:32:30   MAXLAN_error    0
     2014-11-21 09:32:30   MAXLAN_errorInCommand
     2014-11-21 09:32:30   MAXLAN_initialized 1
     2014-11-21 09:32:30   MAXLAN_isAnswer 0
     2014-11-21 09:32:30   MAXLAN_valid    1
     2014-11-21 09:32:30   battery         ok
     2014-11-21 09:32:30   boostDuration   5
     2014-11-21 09:32:30   boostValveposition 80
     2014-11-21 09:32:30   comfortTemperature 20.0
     2014-11-21 09:32:30   decalcification Sat 16:00
     2014-11-21 02:59:35   desiredNew      00
     2014-11-21 09:32:30   desiredTemperature 18.0
     2014-11-21 09:32:30   ecoTemperature  15.0
     2014-11-21 09:32:30   firmware        1.8
     2014-11-21 09:32:30   groupid         4
     2014-11-17 07:49:01   humidity        0
     2014-11-21 09:32:30   maxValveSetting 100
     2014-11-21 09:32:30   maximumTemperature 21.0
     2014-11-21 09:32:30   measurementOffset 0.0
     2014-11-21 09:32:30   minimumTemperature off
     2014-11-21 09:32:30   mode            auto
     2014-11-21 09:32:30   state           18.0 °C
     2014-11-21 09:32:30   temperature     19.1
     2014-11-21 09:32:30   testresult      255
     2014-11-21 09:32:30   valveOffset     0
     2014-11-21 09:32:30   valveposition   22
     2014-11-21 09:32:30   weekprofile-0-Sat-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-0-Sat-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-1-Sun-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-1-Sun-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-2-Mon-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-2-Mon-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-3-Tue-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-3-Tue-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-4-Wed-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-4-Wed-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-5-Thu-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-5-Thu-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   weekprofile-6-Fri-temp 16.0 °C  /  16.0 °C  /  18.5 °C  /  18.5 °C  /  18.0 °C  /  18.0 °C  /  18.5 °C  /  19.5 °C  /  19.5 °C  /  19.0 °C  /  19.0 °C  /  16.0 °C
     2014-11-21 09:32:30   weekprofile-6-Fri-time 00:00-02:00  /  02:00-04:00  /  04:00-06:00  /  06:00-08:00  /  08:00-10:00  /  10:00-12:00  /  12:00-14:00  /  14:00-16:00  /  16:00-18:00  /  18:00-20:00  /  20:00-21:30  /  21:30-00:00
     2014-11-21 09:32:30   windowOpenDuration 15
     2014-11-21 09:32:30   windowOpenTemperature 12.0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      ml
   alias      Living_Rad
   event-on-change-reading .*
   icon       my_heating_automatic
   keepAuto   1
   room       Living


I have the results of yesterdays attempts (reversed), can do again if needed, but it looks to be extracting the profile OK, (same profile every day)

        };
                 }
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '5' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '2' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '0' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '3' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '1' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '4' => {
                 },
                   '12:00' => '18.5'
                   '20:00' => '19.0',
                   '02:00' => '16.0',
                   '00:00' => '16.0',
                   '10:00' => '18.0',
                   '08:00' => '18.0',
                   '14:00' => '19.5',
                   '16:00' => '19.5',
                   '21:30' => '16.0',
                   '04:00' => '18.5',
                   '18:00' => '19.0',
                   '06:00' => '18.5',
          '6' => {
2014.11.20 18:04:06 3: $VAR1 = {
2014.11.20 18:04:06 3: logProxy_Get


Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 21 November 2014, 11:31:38
i just made a quick test with a completely new installation and it did work.

did you enable the Log 3, "logProxy_Get"; in line 580? if not then probably your version is not current.

please enable the debug output in line 825. are there values in the log?

how exactly does your plot window look like? are there any errors or is it just blank?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 12:26:55
As far as I know I'm up to date,
# $Id: 98_logProxy.pm 7013 2014-11-17 20:11:17Z justme1968 $

I enabled just about everything yesterday! Last post was probably from line 580 looking at it again, now disabled

I've attached the log with lines 243 and 825 enabled, as it is quite long. I see there are some warnings that I had not seen before

Plot window is displayed OK but blank.

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 21 November 2014, 14:50:49
Hello fruit,

not sure whether this helps - here my definitions.

Definition in fhem:
#================================================
#==== GraphPlot
#================================================
define Buero_HK_Tag SVG MyLogProxy:MyHomeMaticRTall:HISTORY
attr Buero_HK_Tag group Buero_Plots
attr Buero_HK_Tag icon time_graph
attr Buero_HK_Tag label "Temperatur [C]"::"Ventil/Luft [%]"
attr Buero_HK_Tag plotfunction Buero_HK Buero_HK_Clima
attr Buero_HK_Tag room H-EG-R-Buero
attr Buero_HK_Tag sortby 03
attr Buero_HK_Tag title "HK - IST:$data{currval1}C * SOLL:$data{currval2}C * Ventil:$data{currval3}%"


And my gplot file 'MyHomeMaticRTall.
set yrange [0:35]
set y2range [0:100]
set ytics nomirror
set y2tics
set grid y2tics
#set format y "%.1f"
#set format y2 "%.1f"
#================================================

#================================================
# if you need a ':' in regex or function replace it by '\x3a'
# syntax:  <col/spec>:<regexp>:<default>:<fn> (@fld,0-based,NO space)
#           <SPEC1>:attr:0:[int|delta-h,delta-d|$fld[3]=~"on"?0.9:0.1]
#================================================

#================================================
#DbLog <SPEC1>:measured-temp:::
#DbLog <SPEC1>:desired-temp:::
#DbLog <SPEC1>:actuator:::
#DbLog <SPEC1>:humidity:::
#================================================

#================================================
#logProxy DbLog:MyDbLog:<SPEC1>:measured-temp:::
#logProxy DbLog:MyDbLog:<SPEC1>:desired-temp:::
#logProxy DbLog:MyDbLog:<SPEC1>:actuator::int:
#logProxy DbLog:MyDbLog:<SPEC1>:humidity::int:
#logProxy Func:logProxy_WeekProfile2Plot('<SPEC2>',$from,$to)
#================================================

#================================================
# colors
# l0 ... red        l0fill ... red           l0dot ... red, dotted
# l1 ... green      l1fill ... green         l1dot ... green, dotted
# l2 ... blue       l2fill ... blue          l0fill_stripe ... red, filled, stripes
# l3 ... magenta    l3fill ... magenta       l1fill_stripe ... green, filled, stripes
# l4 ... brown      l4fill ... yellow        l0fill_gyr ... filled, multicolor
# l5 ... black      l5fill ... cyan
# l6 ... olive      l6fill ... black
# l7 ... gray
# l8 ... yellow
#================================================
# line types
# points
# lines
# steps
# fsteps
# histeps
# bars
#================================================
plot "<IN>" axes x1y1 title 'IST-Temperatur' ls l0 lw 2 with lines,\
     "<IN>" axes x1y1 title 'SOLL-Temperatur' ls l4 lw 2 with steps,\
     "<IN>" axes x1y2 title 'Ventil' ls l5 lw 2 with lines,\
     "<IN>" axes x1y2 title 'Luftfeuchtigkeit' ls l2 lw 1 with points,\
     "<IN>" axes x1y1 title 'TempProfil' ls l7 lw 1 with steps   
#================================================


For <SPEC1> and <SPEC2> the plotfunction parameters are used.

cheers walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 21 November 2014, 15:09:21
in the latest version of the SVG module there is a 'Show preprocessed input' button. do you see any data if you click it?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 15:19:28
Zitatin the latest version of the SVG module there is a 'Show preprocessed input' button. do you see any data if you click it?

A single line, no data

get myProxy CURRENT - 2014-11-21_00:00:00 2014-11-22_00:00:01 Func:logProxy_WeekProfile2Plot("MAX_075bb2",$from,$to)


@wkarl thanks, that explains where the <SPECx> I've seen in this thread come from :)

I'll try something like that and see what happens
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 21 November 2014, 15:45:31
the 'Show preprocessed input' was not working. i have just fixed this. it will be available with the update tomorrow. please try again then.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 15:51:49
Fine, no problems, looking forward to it

I've tried a modified version of wkarl's code, nothing again - though perhaps to be expected until tomorrow
I do like that commented gplot file.

Thanks for your time
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 21 November 2014, 16:41:35
here you see how it looks like. The light-grey one is the tempList.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 21 November 2014, 17:37:59
Thanks. I wonder if I'll be able to get something like that here tomorrow ;)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: fruit am 22 November 2014, 08:32:36
The Cubie watchdog rebooted overnight and this morning I have a weekprofile plot.

I have done a number of fhem restarts trying to set this plot up including one just before sending the last set of logs but that was not enough to get things going for some reason.
Odd.

I've lost wkarls' more complex version on the restart but will try adding that in again over the weekend.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 25 November 2014, 15:20:56
ab morgen gibt es ein kleines update. siehe hier: http://forum.fhem.de/index.php?topic=29233.msg223435#msg223435

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 13:36:14
servus andre,

ich würde gerne dein beispiel mit dem polar system bei mir übernehmen.
anstelle der max thermotate habe ich welche von homematic.
irgendwie stelle ich mich zu dumm an. bin schon am verzweifeln, hab auch schon vieles ausprobiert aber bekomme es einfach nicht hin. ich erhalte immer ein leeres plot fenster.
wäre über einen tip was ich alles anpassen muß sehr dankbar.

viele grüße markus

p.s.: hier noch meine config:

define MyLogProxy logProxy
define Klima_Log_Test SVG MyLogProxy:SVG_Klima_Log_Test:CURRENT
attr Klima_Log_Test plotsize 340,400
attr Klima_Log_Test room BAD,Plot,Obergeschoss,Erdgeschoss,Wetter



set xtics ()
set ytics ()
set y2tics ()

set xrange [-40:40]
set yrange [-40:40]

#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)} devspec2array("BAD_Thermostat_Climate.*")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array("BAD_Thermostat_Climate.*")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array("BAD_Thermostat_Climate.*")]}
#logProxy Polar::{[devspec2array("BAD_Thermostat_Climate.*")]}

plot "<IN>" using 1:2 axes x1y1 title 'Ist' ls l0 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Soll' ls l1fill lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l0 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle  ls l2 lw 1 with lines,\
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 13:43:22
du musst jeweils die reading namen anpassen (desired-temp statt desiredTemperature und measured-temp statt temperature) und den devspec2array ausdruck so das alle deine thermostate gefunden werden (eventuell .*Climate statt MAX_0d.*).

letzteres kannst du einfach mit einen list in fhem testen.

je nach dem wie deine devices heissen z.b. list *.Climate

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 14:09:23
soweit war ich auch schon mal. die anzeige sieht aber ganz anders aus als auf deinem screenshot. auch die beschriftung der geräte namen, sollte diese automatisch da sein?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 14:29:48
das ist doch schon mal mehr als nur ein weisser plot.

ich wollte gerade antworten da fehlt vermutlich vor allem die definition für die achsen skalieren und beschriftung im plot file:set xtics ()
set ytics ()
set y2tics ()

set xrange [-60:60]
set yrange [-60:60]


aber du hast ja inzwischen noch deine config angehängt.

welche version hat dein SVG und logProxy modul?

was bekommst du als ausgabe wenn du jeweils eine der folgenden zeilen im telnet fenster eingibst?
{Dumper [map{ReadingsVal($_,"measured-temp",0)} devspec2array("BAD_Thermostat_Climate.*")]}
{Dumper [map{ReadingsVal($_,"desired-temp",0)}devspec2array("BAD_Thermostat_Climate.*")]}
{Dumper [devspec2array("BAD_Thermostat_Climate.*")]}



gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 14:58:47
ich glaube die ausgabe könnte passen:
$VAR1 = [
          '20.5'
        ];


Zitatda fehlt vermutlich vor allem die definition für die achsen skalieren und beschriftung im plot file
dass vermute ich auch. dann fehlt es ja gar nicht so weit :)
und wie setze ich die definition und die beschriftung?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 15:04:10
der wert ist zwar richtig aber da muss mehr als einer stehen. für ein device macht der plot keinen sinn. der ausdruck den du angibst muss alle devices erwischen. nicht nur eins. also so etwas: *.Climate

bitte poste die ausgabe für alle drei zeilen.

was gibt ein list .*Climate?


du hast beides schon gesetzt. deshalb die frage nach den versionen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 15:19:52
BAD_Thermostat_Climate.* habe ich bereits durch .*Climate ersetzt.

list *.Climate ergibt:
No device named *.Climate found
{Dumper [map{ReadingsVal($_,"measured-temp",0)} devspec2array(".*Climate")]}
$VAR1 = [
          '20.4',
          '18.8',
          '20.0',
          '19.4',
          '18.0',
          '20.2',
          '16.3',
          '20.0',
          '17.1',
          '18.1',
          '16.9',
          '18.3',
          '19.1'
        ];

{Dumper [map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
$VAR1 = [
          '20.0',
          '18.5',
          '20.0',
          '18.5',
          '18.0',
          '19.0',
          '14.5',
          '14.5',
          '17.0',
          '18.0',
          '17.0',
          '18.5',
          '19.0'
        ];

{Dumper [devspec2array(".*Climate")]}
$VAR1 = [
          'BAD_Thermostat_Climate',
          'EG_Thermostat_WC_Climate',
          'EG_Thermostat_Wohnzimmer_Climate',
          'FL_Thermostat_EG_Climate',
          'FL_Thermostat_KG_Climate',
          'FL_Thermostat_OG_Climate',
          'KG_Thermostat_Gefrierschrank_Climate',
          'KG_Thermostat_Heizung_Climate',
          'KG_Thermostat_Hobby_Climate',
          'KG_Thermostat_PC_Climate',
          'KG_Thermostat_Werkstatt_Climate',
          'SZ_Thermostat_Ki_Nord_Climate',
          'SZ_Thermostat_Ki_Sud_Climate'
        ];
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 15:31:54
das schaut alles gut aus.

eigentlich sollte es gehen.

welche versionen haben das logProxy und das SVG modul ?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 15:40:49
fhem ist auf dem neuesten stand.

# $Id: 98_SVG.pm 7075 2014-11-27 20:59:58Z rudolfkoenig $
# $Id: 98_logProxy.pm 7063 2014-11-25 13:31:34Z justme1968 $

sind das die richtigen infos?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 15:44:13
ja. genau. eigentlich schaut alles gut aus.

bitte häng noch mal dein gplot file hier an.

danke
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 15:47:59
brauch ich vielleicht irgendwelche speziellen dateien?
ich benutze ein 64 bit ubuntu als fhem server. aber sonst läuft auch alles einwandfrei.

set xtics ()
set ytics ()
set y2tics ()
set xrange [-40:40]
set yrange [-40:40]

#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)} devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[devspec2array(".*Climate")]}

plot "<IN>" using 1:2 axes x1y1 title 'Ist' ls l0 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Soll' ls l1fill lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l0 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle  ls l2 lw 1 with lines,\
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Dezember 2014, 15:57:35
bitte füge mal die folgende zeile noch am anfang des gplot files ein:

set terminal png transparent size <SIZE> crop

und häng mal wirklich das gplot file als file hier an.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 16 Dezember 2014, 17:23:59
das anhängen von
set terminal png transparent size <SIZE> crop
hat nichts geändert, die datei liegt bei.

gruß
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 11:33:59
bitte nimm mal das angehängte plot file und diese definition:define wl_Klima SVG MyLogProxy:SVG_Klima_Log_Test:CURRENT
attr wl_Klima plotsize 440,400
attr wl_Klima room lp


wie schaut es damit bei dir aus?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 11:46:39
so sieht es super aus :)
sind aber statische Werte die sich nicht ändern oder?

gruß
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 11:54:33
die werte sind noch statisch. es sind die werte aus deinem posting weiter oben.

bitte ersetze jetzt nacheinander die statischen werte (also alles zwischen den eckigen klammern) durch den funktionsaufruf der die dynamischen werte liefert. am besten eine zeile nach der anderen und schau ob und wann es schief geht.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 12:41:32
bitte klick mal im svg editor auf das 'show preprocessed input' und häng das ergebnis mal hier an.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 12:54:12
entschuldige, ich hab nen fehler gemacht. hab den post zuvor von mir gelöscht weil ich ihn korrigieren wollte. ich hatte die zeile vergessen.
#logProxy Polar::{[devspec2array(".*Climate")]}

jetzt funktioniert es so:

set terminal png transparent size <SIZE> crop
set xtics ()
set ytics ()
set y2tics ()
set xrange [-60:60]
set yrange [-60:60]

#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)} devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{['BAD_Thermostat_Climate','EG_Thermostat_WC_Climate','EG_Thermostat_Wohnzimmer_Climate','FL_Thermostat_EG_Climate','FL_Thermostat_KG_Climate','FL_Thermostat_OG_Climate','KG_Thermostat_Gefrierschrank_Climate','KG_Thermostat_Heizung_Climate','KG_Thermostat_Hobby_Climate','KG_Thermostat_PC_Climate','KG_Thermostat_Werkstatt_Climate','SZ_Thermostat_Ki_Nord_Climate','SZ_Thermostat_Ki_Sud_Climate']}
#logProxy Polar::{[devspec2array(".*Climate")]}

plot "<IN>" using 1:2 axes x1y1 title 'Ist' ls l0 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Soll' ls l1fill lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l0 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle  ls l2 lw 1 with lines,\

die alles entscheidende zeile, die mit rein muß ist folgende. ohne diese geht es nicht.

#logProxy Polar::{['BAD_Thermostat_Climate','EG_Thermostat_WC_Climate','EG_Thermostat_Wohnzimmer_Climate','FL_Thermostat_EG_Climate','FL_Thermostat_KG_Climate','FL_Thermostat_OG_Climate','KG_Thermostat_Gefrierschrank_Climate','KG_Thermostat_Heizung_Climate','KG_Thermostat_Hobby_Climate','KG_Thermostat_PC_Climate','KG_Thermostat_Werkstatt_Climate','SZ_Thermostat_Ki_Nord_Climate','SZ_Thermostat_Ki_Sud_Climate']}

falls du 'show preprocessed input' noch brauchst

get MyLogProxy CURRENT - 2014-12-17_00:00:00 2014-12-18_00:00:01 Polar::{[map{ReadingsVal($_,"measured-temp",0)} devspec2array(".*Climate")]} Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]} Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]} Polar::{['BAD_Thermostat_Climate','EG_Thermostat_WC_Climate','EG_Thermostat_Wohnzimmer_Climate','FL_Thermostat_EG_Climate','FL_Thermostat_KG_Climate','FL_Thermostat_OG_Climate','KG_Thermostat_Gefrierschrank_Climate','KG_Thermostat_Heizung_Climate','KG_Thermostat_Hobby_Climate','KG_Thermostat_PC_Climate','KG_Thermostat_Werkstatt_Climate','SZ_Thermostat_Ki_Nord_Climate','SZ_Thermostat_Ki_Sud_Climate']} Polar::{[devspec2array(".*Climate")]}

;c 0
;p 0 20
;p 8.59737867376292 16.3809364793325
;p 16.459677305324 11.3612949528037
;p 18.3651141671194 2.22992861515131
;p 16.8302923824379 -6.38288792958578
;p 12.5993305458466 -14.2217041804594
;p 3.47007717882141 -14.0786563411791
;p -3.47007707774246 -14.0786563660928
;p -11.2730851338732 -12.7246827687156
;p -15.8952760956886 -6.02828315873033
;p -16.8760508709837 2.0491234711381
;p -15.2252015828764 10.5091977220327
;p -8.82974038032729 16.8236644288935
;p 0 20
#Polar::{[map{ReadingsVal($_,"measured-temp",0)}
;c 0
;p 0 20.8
;p 8.92268489385125 17.0007556974694
;p 16.8711692379571 11.6453273266238
;p 19.5563648157974 2.37457263343139
;p 16.9237940067848 -6.41834841808348
;p 13.5940145363082 -15.3444702999693
;p 3.90084538033028 -15.8263516111186
;p -4.81024477673265 -19.5159305488597
;p -11.5383341958467 -13.0240870691559
;p -17.2042988329806 -6.52473000709636
;p -16.9753217584601 2.06117713861538
;p -15.7189919044832 10.8500365670716
;p -8.82974038032729 16.8236644288935
;p 0 20.8
#Polar::{[map{ReadingsVal($_,"measured-temp",0)}
;c 0
;t 0 32 middle BAD_Thermostat_Climate
;t 14.8711414897521 28.3345928291157 middle EG_Thermostat_WC_Climate
;t 26.3354836885184 18.1780719244859 start EG_Thermostat_Wohnzimmer_Climate
;t 31.7666839647471 3.85717382080226 start FL_Thermostat_EG_Climate
;t 31.7905522779383 -12.0565660892176 start FL_Thermostat_KG_Climate
;t 22.5461704504624 -25.4493653755589 start FL_Thermostat_OG_Climate
;t 8.13673269516745 -33.0120217655234 middle KG_Thermostat_Gefrierschrank_Climate
;t -8.13673245815474 -33.0120218239418 middle KG_Thermostat_Heizung_Climate
;t -22.5461702677464 -25.4493655374311 end KG_Thermostat_Hobby_Climate
;t -31.7905521913771 -12.0565663174607 end KG_Thermostat_PC_Climate
;t -31.76668399244 3.85717359273054 end KG_Thermostat_Werkstatt_Climate
;t -26.3354838190295 18.178071735408 end SZ_Thermostat_Ki_Nord_Climate
;t -14.8711416931828 28.334592722347 middle SZ_Thermostat_Ki_Sud_Climate
;
;ls l7
;
;p 0 10
;t 0 10 start 10
;p 4.64723171554752 8.85456025909865
;p 8.22983865266199 5.68064747640184
;p 9.92708873898346 1.20536681900071
;p 9.35016243468774 -3.54604884976988
;p 6.63122660307718 -7.48510746339968
;p 2.39315667504925 -9.70941816633042
;p -2.39315660533963 -9.7094181835123
;p -6.63122654933719 -7.48510751100915
;p -9.35016240922857 -3.5460489169002
;p -9.92708874763749 1.20536674772829
;p -8.22983869344671 5.68064741731499
;p -4.64723177911963 8.85456022573344
;p -7.17958872421848e-08 10
;p 0 10
;
;p 0 20
;t 0 20 start 20
;p 9.29446343109505 17.7091205181973
;p 16.459677305324 11.3612949528037
;p 19.8541774779669 2.41073363800141
;p 18.7003248693755 -7.09209769953976
;p 13.2624532061544 -14.9702149267994
;p 4.7863133500985 -19.4188363326608
;p -4.78631321067926 -19.4188363670246
;p -13.2624530986744 -14.9702150220183
;p -18.7003248184571 -7.09209783380039
;p -19.854177495275 2.41073349545659
;p -16.4596773868934 11.36129483463
;p -9.29446355823925 17.7091204514669
;p -1.4359177448437e-07 20
;p 0 20
;
;p 0 30
;p 13.9416951466426 26.563680777296
;p 24.689515957986 17.0419424292055
;p 29.7812662169504 3.61610045700212
;p 28.0504873040632 -10.6381465493096
;p 19.8936798092315 -22.455322390199
;p 7.17947002514775 -29.1282544989913
;p -7.17946981601888 -29.1282545505369
;p -19.8936796480116 -22.4553225330275
;p -28.0504872276857 -10.6381467507006
;p -29.7812662429125 3.61610024318488
;p -24.6895160803401 17.041942251945
;p -13.9416953373589 26.5636806772003
;p -2.15387661726554e-07 30
;p 0 30
;
;p 0 0
;p 0 30
;
;p 0 0
;p 13.9416951466426 26.563680777296
;
;p 0 0
;p 24.689515957986 17.0419424292055
;
;p 0 0
;p 29.7812662169504 3.61610045700212
;
;p 0 0
;p 28.0504873040632 -10.6381465493096
;
;p 0 0
;p 19.8936798092315 -22.455322390199
;
;p 0 0
;p 7.17947002514775 -29.1282544989913
;
;p 0 0
;p -7.17946981601888 -29.1282545505369
;
;p 0 0
;p -19.8936796480116 -22.4553225330275
;
;p 0 0
;p -28.0504872276857 -10.6381467507006
;
;p 0 0
;p -29.7812662429125 3.61610024318488
;
;p 0 0
;p -24.6895160803401 17.041942251945
;
;p 0 0
;p -13.9416953373589 26.5636806772003
;
;p 0 0
;p -2.15387661726554e-07 30
#Polar::{[map{ReadingsVal($_,"measured-temp",0)}
;c 0
;t 0 32 middle BAD_Thermostat_Climate
;t 14.8711414897521 28.3345928291157 middle EG_Thermostat_WC_Climate
;t 26.3354836885184 18.1780719244859 start EG_Thermostat_Wohnzimmer_Climate
;t 31.7666839647471 3.85717382080226 start FL_Thermostat_EG_Climate
;t 31.7905522779383 -12.0565660892176 start FL_Thermostat_KG_Climate
;t 22.5461704504624 -25.4493653755589 start FL_Thermostat_OG_Climate
;t 8.13673269516745 -33.0120217655234 middle KG_Thermostat_Gefrierschrank_Climate
;t -8.13673245815474 -33.0120218239418 middle KG_Thermostat_Heizung_Climate
;t -22.5461702677464 -25.4493655374311 end KG_Thermostat_Hobby_Climate
;t -31.7905521913771 -12.0565663174607 end KG_Thermostat_PC_Climate
;t -31.76668399244 3.85717359273054 end KG_Thermostat_Werkstatt_Climate
;t -26.3354838190295 18.178071735408 end SZ_Thermostat_Ki_Nord_Climate
;t -14.8711416931828 28.334592722347 middle SZ_Thermostat_Ki_Sud_Climate
;
;ls l7
;
;p 0 10
;t 0 10 start 10
;p 4.64723171554752 8.85456025909865
;p 8.22983865266199 5.68064747640184
;p 9.92708873898346 1.20536681900071
;p 9.35016243468774 -3.54604884976988
;p 6.63122660307718 -7.48510746339968
;p 2.39315667504925 -9.70941816633042
;p -2.39315660533963 -9.7094181835123
;p -6.63122654933719 -7.48510751100915
;p -9.35016240922857 -3.5460489169002
;p -9.92708874763749 1.20536674772829
;p -8.22983869344671 5.68064741731499
;p -4.64723177911963 8.85456022573344
;p -7.17958872421848e-08 10
;p 0 10
;
;p 0 20
;t 0 20 start 20
;p 9.29446343109505 17.7091205181973
;p 16.459677305324 11.3612949528037
;p 19.8541774779669 2.41073363800141
;p 18.7003248693755 -7.09209769953976
;p 13.2624532061544 -14.9702149267994
;p 4.7863133500985 -19.4188363326608
;p -4.78631321067926 -19.4188363670246
;p -13.2624530986744 -14.9702150220183
;p -18.7003248184571 -7.09209783380039
;p -19.854177495275 2.41073349545659
;p -16.4596773868934 11.36129483463
;p -9.29446355823925 17.7091204514669
;p -1.4359177448437e-07 20
;p 0 20
;
;p 0 30
;p 13.9416951466426 26.563680777296
;p 24.689515957986 17.0419424292055
;p 29.7812662169504 3.61610045700212
;p 28.0504873040632 -10.6381465493096
;p 19.8936798092315 -22.455322390199
;p 7.17947002514775 -29.1282544989913
;p -7.17946981601888 -29.1282545505369
;p -19.8936796480116 -22.4553225330275
;p -28.0504872276857 -10.6381467507006
;p -29.7812662429125 3.61610024318488
;p -24.6895160803401 17.041942251945
;p -13.9416953373589 26.5636806772003
;p -2.15387661726554e-07 30
;p 0 30
;
;p 0 0
;p 0 30
;
;p 0 0
;p 13.9416951466426 26.563680777296
;
;p 0 0
;p 24.689515957986 17.0419424292055
;
;p 0 0
;p 29.7812662169504 3.61610045700212
;
;p 0 0
;p 28.0504873040632 -10.6381465493096
;
;p 0 0
;p 19.8936798092315 -22.455322390199
;
;p 0 0
;p 7.17947002514775 -29.1282544989913
;
;p 0 0
;p -7.17946981601888 -29.1282545505369
;
;p 0 0
;p -19.8936796480116 -22.4553225330275
;
;p 0 0
;p -28.0504872276857 -10.6381467507006
;
;p 0 0
;p -29.7812662429125 3.61610024318488
;
;p 0 0
;p -24.6895160803401 17.041942251945
;
;p 0 0
;p -13.9416953373589 26.5636806772003
;
;p 0 0
;p -2.15387661726554e-07 30
#Polar::{[map{ReadingsVal($_,"measured-temp",0)}
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 12:59:41
ich habe den fehler gefunden. du hast hier: http://forum.fhem.de/index.php/topic,26529.msg231314.html#msg231314 (http://forum.fhem.de/index.php/topic,26529.msg231314.html#msg231314) ein leerzeichen vor dem devspec2array. in den zeilen dürfen keine leerzeichen vorkommen. da habe ich leider keinen einfluss drauf.

die vier zeilen müssen so aussehen:#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[devspec2array(".*Climate")]}


gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 13:15:45
entschuldigung, das hätte ich eigentlich auch sehen können.
vielleicht könntest es für alle anderen in dem beispiel im wiki auch abändern?

dickes DANKE an dich!

schöne grüsse
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 13:21:40
hi andre!

jetzt hätte ich noch ne frage zu der ansicht.
gibt es eine möglichkeit auf die beschriftung einfluss zu nehmen bezüglich der positionierung wegen der lesbarkeit? oder muss ich kürzere namen vergeben? macht es sinn dass ich es mal mit kürzeren alias versuche?

grüsse
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 13:28:39
ich habe es im wiki korrigiert.

zur beschriftung:

- ich habe eben eine kleine änderung eingecheckt die die label im unteren bereich besser verteilt. damit stehen sie nicht mehr übereinander.

- kürzere bezeichnungen passen besser auf den plot. wenn du deinen devices alias namen vergeben hat kannst du statt der bisherigen vierten zeile:#logProxy Polar::{[devspec2array(".*Climate")]}so etwas verwenden:#logProxy Polar::{[map{AttrVal($_,"alias",$_)}devspec2array(".*Climate")]}

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 13:34:33
wow, da bin ich sprachlos :)

tausend dank für die kompetente hilfe und die tolle arbeit!!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 17 Dezember 2014, 18:45:35
hallo andre,

jetzt habe ich noch eine frage.
aber ich will dir nicht noch mehr arbeit einbrocken, eine antwort ob es geht oder nicht reicht mir :)
just for fun habe ich mir noch die humidity werte mit anzeigen lassen. die "skala" (spinennetz) geht bis zum wert 30. kann ich das wo einstellen dass die skala z.b. bis 100 geht?

grüsse
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Dezember 2014, 19:24:49
das geht noch nicht. ist aber schon in planung.

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 13:06:10
ach ja. noch etwas: eine skala die bis 100 geht wäre vermutlich sowieso nicht das was du willst. dann ist der bereich für die temperaturen zu klein. ich denke wenn du temperatur und luftfeuchtigkeit in einem diagram haben willst ist es besser bei der 0-30 skala zu bleiben und die feuchtigkeit durch drei zu teilen.

das sollte etwa so gehen:#logProxy Polar::{[map{ReadingsVal($_,"humidity",0)/3}devspec2array(".*Climate")]}

die regex um auf die richtigen devices zu kommen musst du natürlich noch anpassen und aufpassen das die reihenfolge stimmt.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 13:16:44
clevere idee...danke!
ich probiers heut abend gleich mal aus.
bin ja gespannt wie es von der ablesbarkeit ist. mal 3 genommen ist die auflösung ja ziemlich schlecht, aber für ne schnelle übersicht reicht es bestimmt ganz gut aus.

grüße
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 13:21:08
diese spinnennetz darstellung ist glaube ich sowieso eher für einen schnellen überblick und um ausreißer zu erkennen. nicht um quantitative aussagen zu treffen.

durch die skalierung sollten temperatur und luftfeuchte etwa im gleichen wertebereich landen. das ist für die ablesbarkeit sicher besser als beides unskaliert zusammen abzubilden.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 13:45:19
ja da hast du recht. sieht jetzt wirklich klasse aus.

wäre eine Anzeige dazu noch möglich ob das Ventil der Heizung gerade geöffnet ist?
vermutlicht wäre es kein problem die werte on und off z.b. auf 31 und 0 zu formatieren.
aber die zuordnung das die aktoren der ventile passend zu den thermostaten geordnet werden.
wird wohl vernünftiger sein hierfür ein eigenes plot zu verwenden, oder wie siehst du das?

gruss
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 14:04:35
ich denke ein eigener plot ist übersichtlicher.

aber wenn die alphabetische reihenfolge der ventil devices zur reihenfolge der anderen plots passt geht es auch direkt ohne aufwand in einem plot. probiere es einfach aus.

wenn die reihenfolge nicht passt kannst du dir eine kleine sub schreiben die jeweils die richtigen namen in der richtigen reihenfolge liefert und statt dem devspec2array verwenden.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 14:21:50
könntest du mir bitte noch einen tip geben wie das mit der formatierung eingebunden werden muss?
so funktioniert es zumindest nicht :)
#logProxy Polar::{[map{ReadingsVal($_,"state",{~"on"?30:0})}devspec2array(".*_Heizung_Ventile_.*")]}
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 14:40:59
etwa so:
{Dumper [map{ReadingsVal($_,"state","")eq"On"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}

gruss
   andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 15:06:01
wenn ich es so abfrage:
{Dumper [map{ReadingsVal($_,"state","")eq"On"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}
kommen die richtigen werte, aber der plot sieht dann eigenartig aus.
set terminal png transparent size <SIZE> crop
set xtics ()
set ytics ()
set y2tics ()
set xrange [-45:45]
set yrange [-45:45]

#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"humidity",0)/3}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"humidity",0)/3}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"state","")eq"on"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}
#logProxy Polar::{[map{AttrVal($_,"alias",$_)}devspec2array(".*Climate")]}

plot "<IN>" using 1:2 axes x1y1 title 'Ist' ls l0 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Luftfeuchtigkeit/3' ls l2 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Soll' ls l1fill lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l2 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l0 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 title 'Heizung EIN' ls l5 lw 5 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle  ls l4 lw 1 with lines,\

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 15:19:51
sorry. mein fehler. der : ist in der colum_spec nicht erlaubt.

mach es so:{[map{mySub($_)}devspec2array(".*_Heizung_Ventile_.*")]}

und das hier in 99_myUtils.pm:sub mySub($){
  my($DEVICE) = @_;
  return ReadingsVal($DEVICE,"state","")eq"On"?"30":"0";
};


gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 15:44:21
macht nichts, wenn dann habe ich zu danken :)
aber es schaut noch so wie auf dem screenshot in meinem letzten post aus.
hat sich also nichts verändert

gruss
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Dezember 2014, 17:22:02
ich weiß nicht ob es dir weiterhilft aber bei eingabe von
{Dumper [map{mySub($)}devspec2array(".*_Heizung_Ventile_.*")]}
wird folgendes ausgegeben
syntax error at (eval 389) line 1, at EOF

gruss markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Dezember 2014, 19:50:14
da fehlt auch ein _ hinter dem $.

{Dumper [map{mySub($_)}devspec2array(".*_Heizung_Ventile_.*")]}

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 19 Dezember 2014, 07:08:12
DANKE!!!

gruss
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: automatisierer am 01 Januar 2015, 15:34:05
erst mal allen ein frohes neues jahr!

meine ganzen logproxys haben seit dem Jahreswechsel ein Problem mit der extend Funktion. wenn ich den plot ins letzte Jahr zurück scrolle, wird alles ganz normal angezeigt. aber alles was in diesem jahr ist wird mit den letzten Werten aus dem vergangenen Jahr dargestellt und die aktuellen werte werden nicht berücksichtigt.
Wenn ich die extend Funktion raus nehme klappts auch wieder.

Gruß
Ingo

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 01 Januar 2015, 15:41:02
Hallo,

Danke. Von mir auch erstmal ein gutes neues Jahr.
Bei mir wird auch nichts mehr angezeigt.  Bin aber noch nicht dazu gekommen nachzuforschen.

Grsüße Markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 01 Januar 2015, 17:35:39
passiert das in verbindung mit filelog oder dbblog? sind es jahreslogs oder monatslogs?

es kann sehr gut sein das es probleme mit dem log file wechsel gibt.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: automatisierer am 01 Januar 2015, 17:43:32
mit filelog, dblog benutze ich nicht.  und bei jahreslog und monatslog. ich kann allerdings nicht sagen ob dieses phänomen bei einem monatswechsel auch auftritt, da ich logproxy noch nicht so lange benutze.

was mich ein wenig stutzig macht, ist dass noch die daten aus dem vorherigen log dargestellt werden. eigentlich sollte doch auf das current logfile zugegriffen werden.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 01 Januar 2015, 18:26:52
Ich benutze ebenfalls nur filelog und einen Monatswechsel habe ich auch noch nicht mit gemacht.
Bei mir werden nicht alte Werte angezeigt, sondern gar nichts,  quasi nur ein leeres Plot Fenster.

Grüße Markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 02 Januar 2015, 13:32:09
ZitatEin "Problem" hab ich noch. Der Plot Editor zeigt maximal 8 gplot Zeilen an. Bisher war kaum anzunehmen das jemand mehr als 8 Kurven in einem Plot zeichnet, aber mit LogProxy kommt da schnell was zusammen wenn man sich zB auch Striche und Punkte anzeigen lassen will. Normaleweise editiere ich alle Dateien mit eclipse aber bei kleinen Änderungen/Versuchen nehme ich da schon gerne den Plot Editor und wenn mehr als 8 Zeilen vorhanden sind hat der mir die gplot Datei zusammen. Ich hab dann mal nachgesehen und bin auf diese Zeile (313 98_SVG.pm) gestoßen:
Code: [Auswählen]

$max = 8 if($max > 8);

ein zB
Code: [Auswählen]

$max = 15 if($max > 15);

bringt nicht wirklich was, siehe Anhang. Da muss es irgendwo noch eine Einstellung geben, hab sie aber bisher nicht gefunden. Vielleicht kannst du dir das, wenn du Zeit und Muse hast, mal ansehen.

Zitatdas mit dem editor schaue ich mir an. eigentlich wäre es ideal wenn alle zeilen angezeigt werden und es einen knopf gibt um eine neue zeile hinzuzufügen. mal sehen wie aufwändig das ist. ansonsten gibt es jeweils in filelog, dblog und logproxy noch die SVG_sampleDataFn die auch die begrenzung auf 8 eingebaut hat. mach für den logProxy da auch mal 15 draus.

mit dem code zusätzlich in zeile 83 von 98_logproxy funktioniert es auch bei mir mit >8 plots. danke.  :)

$max = 15 if($max > 15);


könnte man das nicht komplett einchecken? von mir aus auch gerne >15. warum existieren hier überhaupt die grenzen?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 02 Januar 2015, 13:38:12
die aktuelle version von logProxy ist schon eine ganze weile mit $max = 16 if($max > 16); eingecheckt.

rudi hat die grenzen eingebaut als er den plot editor eingebaut hat.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 02 Januar 2015, 16:54:53
Also meine Plots sind wieder da.
War wohl doch wegen dem Monats wechsel. Wobei es komisch ist das die Plots die nur einen Tag anzeigen auch nicht gingen. Aber damit kann ich gut leben.
War ein dummer Zufall dass die Kälte die Batterien von der Wetter Station zum Monats wechsel den gar ausgemacht hat  :)

Grüße Markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: rudolfkoenig am 02 Januar 2015, 17:38:37
Ich habe das Limit von 8 entfernt. Stammt aus der Zeit, wo in der CSS nur 8 Linientypen definiert waren.
Ich musste FileLog und SVG aendern.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 02 Januar 2015, 19:10:08
Zitat von: justme1968 am 02 Januar 2015, 13:38:12
die aktuelle version von logProxy ist schon eine ganze weile mit $max = 16 if($max > 16); eingecheckt.
sorry und danke dafür.

ZitatIch habe das Limit von 8 entfernt. Stammt aus der Zeit, wo in der CSS nur 8 Linientypen definiert waren.
perfekt und merci.

beides zusammen funktioniert wunderbar.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Kako am 04 Januar 2015, 00:42:55
Hallo justme1968,
echt tolles Modul, jetzt habe ich gelbe und rote Bereiche für meine Feuchtesensoren.

Kann ich die Polardarstellung auch auf Daten aus einem Filelog anwenden? Mir schwebt da die Polardarstellung für die Windgeschwindigkeit und Richtung vor.

Schöne Grüße,
Karsten
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 04 Januar 2015, 11:13:39
im prinzip geht das. ist aber etwas handarbeit nötig.

du konfigurierst das SVG device genau so wie für das spinnennetz diagramm und müsstest die daten dann entsprechend aufbereiten.

aber was willst du genau anzeigen? wenn es der aktuelle wert ist dann ist es einfacher den direkt aus dem device zu holen. wenn du den verlauf anzeigen willst kommt es darauf an wie es genau aussehen soll. z.b. die häufigeit der windrichtungen darstellen. dazu wäre es aber besser die häufigkeiten direkt schon mit einer art statistics modul zu loggen statt sie nachträglich aus dem log zu holen.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Kako am 04 Januar 2015, 22:34:57
Hm, ich denke, Du hast recht. Da sollte wirklich ein Statistikmodul dazwischen und dann direkt die Werte speichern und nutzen. Vielen Dank für Deinen Tipp. Dann werde ich mich mal mit dem Statistikmodul beschäftigen.

Gruß, Karsten
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 11 Januar 2015, 17:47:08
Hallo,

kann man pro FHEM eigentlich nur EINEN logProxy anlegen ?

Ansonsten kommt folgende Meldung : logProxy device already defined as lp_xxxxx

Gibt das keine Probleme, wenn viele Plots durch diesen einen Proxy "laufen".

Gruss
Joe
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 11 Januar 2015, 18:13:15
du brauchst nur einen logProxy.

das device selber hat weder attribute noch readings.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 13 Januar 2015, 14:23:40
Kann ich mit Logproxy einen Mittelwert der letzten x Minuten ermitteln und anstelle des normalen Wertes ausgeben lassen?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 13 Januar 2015, 18:47:11
nicht out-of-the-box.

ich habe aber eben eingebaut das man für eine kurve eine postprocessing funktion angeben kann. hier kannst du dich dann völlig frei austoben. hier wird z.b. die kurve um 10 nach oben verschoben: sub   
myPostFn($$)
{     
  my($devspec,$array) = @_;
     
  foreach my $point ( @{$array} ) {
    $point->[1] += 10;
  }   

  return $array;
}


und#logProxy DbLog:dbLog,postFn='myPostFn':s300ht_1:temperature::

das beispiel oben ist nicht besonders sinnvoll und soll nur das prinzip zeigen. das array das du zurück gibst muss nicht die gleiche anzahl an punkten enthalten wie das ursprüngliche.

übergeben wird in $devspec die zeile aus dem gplot file und in $array ein array mit allen datenpunkten. jeder punkt ist
ein trippel aus zeitpunkt in sekunden, wert und zeitpunkt als string.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 13 Januar 2015, 19:25:10
hallo,

ich möchte eine temperatur-vorhersage für die nächsten tage plotten (7 tage, ab heute 0 uhr). die vorhersage-temperaturen werden durch das proplanta modul geliefert. dazu liefert das modul für jeden tag 8 temperaturen. also insgesamt 7*8=56 temperaturen in 56 readings.

die readingnamen enthalten den vorhersagezeitpunkt nach folgendem muster:
fc[0-6]_temp(00|03|06|09|12|15|18|21)

fc0_temp00 => forecast für heute (fc0), 0 uhr (temp00)
fc2_temp15 => forecast für übermorgen, 15 uhr
die werte sind dann also immer 3 stunden gültig.

wie wäre denn in diesem fall die beste (einfachste) vorgehensweise? 1. über eine funktion für "logProxy_Func2Plot", oder 2. gleich eine stufe höher, also ein pendant zu "logProxy_Func2Plot"? irgendwie fehlt mir noch der richtige einstieg.  :( ich versuche mich erstmal an dem sunset/sunrise-plot lang zu hangeln.

in bin dankbar für jede hilfe. vielleicht hat schon jemand angefangen?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 13 Januar 2015, 19:55:05
bei logProxy_Func2Plot werden die zeitpunkte von aussen vorgegeben und die angegebene funktion muss nur jeweils den passenden wert zurück liefern. d.h. das die version ist vorgesehen um eine kontinuierliche funktion abzutasten und zu plotten.

bei dir hast du ja pro tag ein paar feste zeitpunkte die du plotten willst. da ist logProxy_WeekProfile2Plot die bessere vorlage. du würdest also eine logProxy_ Proplanta2Plot. du bekommst nur den zeitraum übergeben und lieferst genau die datenpunkte zurück die du hast.

ich habe versucht logProxy_WeekProfile2Plot und alles was dazugehört im code zu kommentieren.

gruss
  andre

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 13 Januar 2015, 21:23:16
Zitatbei dir hast du ja pro tag ein paar feste zeitpunkte die du plotten willst. da ist logProxy_WeekProfile2Plot die bessere vorlage. du würdest also eine logProxy_ Proplanta2Plot. du bekommst nur den zeitraum übergeben und lieferst genau die datenpunkte zurück die du hast.

ich habe versucht logProxy_WeekProfile2Plot und alles was dazugehört im code zu kommentieren.

ok. hatte ich mir auch schon überlegt. bin dann wieder davon weg, da ich dachte, dass dann das profil permanent wiederholt wird. dann werde ich hier mal einsteigen. danke.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 13 Januar 2015, 21:28:12
du bekommst ja den zeitraum übergeben und gibt nur für die schnittmenge aus plot zeitraum und vorhersage zeitraum werte zurück. dann gibt es plot daten nur für die kommende woche.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 13 Januar 2015, 22:57:39
Zitat von: justme1968 am 13 Januar 2015, 18:47:11
ich habe aber eben eingebaut das man für eine kurve eine postprocessing funktion angeben kann. hier kannst du dich dann völlig frei austoben.

#logProxy DbLog:dbLog:s300ht_1,postFn='myPostFn':temperature::

Danke,

gleich mal umgesetzt.
Die Konfigurationszeile ist aber vertauscht, dabei ist mir fhem abgeschmiert.
postFn kommt vor das Device.

Meine Funktion:
#
##########################################################
# Average Berechnung der letzten 4 Werte for LogProxy
#
sub   
myPostFn($$){
  my ($devspec,$array) = @_;
  my ($counter,$flag) = (0,0);
  my @buffer = (0,0,0,0);

  foreach my $point ( @{$array} ){
    $buffer[$counter] = $point->[1];
    $flag = 1 if($counter == 3);
    $point->[1] = ($buffer[0]+$buffer[1]+$buffer[2]+$buffer[3])/4 if ($flag == 1);
    $counter++;
    $counter = 0 if ($counter > 3);
  }

  return $array;
}
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 13 Januar 2015, 23:18:22
stimmt. copy&paste fehler. hab es oben und im wiki korrigiert.

ich würde an deinersStelle ein neues array erzeugen und die referenz darauf zurück geben. du hast ja eigentlich nur noch 1/4 der punkte. und willst nicht nur jeden 4. ändern und den rest so lassen.

je nach sensor und wie regelmäßig er sendet ist es vermutlich auch gut sich den tatsächlichen zeitpunkt anzuschauen und den mittelwert nicht nur nach anzahl sondern nach zwitraum zu bilden. das ist eventuell auch beim rein und raus zoomen besser.

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 13 Januar 2015, 23:27:54
Ab den 4ten Wert wird jeder Mittelwert der letzten 4 Werte genommen. ich reduziere nicht die Datenpunkte.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 14 Januar 2015, 17:19:57
Hallo,

Die neue Funktion "postFn" hat Probleme mit einen 2. Durchschnitswert.

2015.01.14 17:09:25 1: PERL WARNING: Use of uninitialized value $data{"avg2"} in concatenation (.) or string at (eval 11666) line 1.
2015.01.14 17:09:25 3: eval: { "Cubie AC -- V (L/H) $data{min1}/$data{max1} - mA (L/H/A) $data{min2}/$data{max2}/$data{avg2}" }
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 14 Januar 2015, 17:23:16
der werte wird (absichtlich) noch nicht berechnet :)

ich überlege noch wie man das am effizientesten einbaut so das nicht alles mehrfach berechnet wird.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 14 Januar 2015, 17:27:29
Ok.

Erstmal danke für diese Funktion der Manipulation.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 14 Januar 2015, 17:42:36
Kann es nicht die Möglichkeit geben, das diese Werte von der eigenen Funktion geliefert werden.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 14 Januar 2015, 18:24:10

wenn du den wert kennst oder berechnest kannst du ihn ab morgen direkt nach $main::data{"avg1"} schreiben.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: stromer-12 am 14 Januar 2015, 20:29:23
Danke, funktioniert.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 17 Januar 2015, 00:47:13
ich habe nun eine erste version einer plotfunktion für das proplanta modul erstellt. wer es ausprobieren mag, bekommt hier weitere details http://forum.fhem.de/index.php/topic,22967.msg246973.html#msg246973 (http://forum.fhem.de/index.php/topic,22967.msg246973.html#msg246973)

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 19 Januar 2015, 01:37:18
hallo andre,

ist es möglich, in einer plotfunktion das label des aktuellen plots zu verändern? ich möchte den namen des aktuellen plots im label beim erstellen des plots neu festlegen/verändern. zb mit einer uhrzeit erweitern.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 21 Januar 2015, 18:18:57
Hallo,

kann es sein dass in der spider ansicht sich etwas geändert hat seit dem letzten fhem update?
zumindest ist es mir gerade erst aufgefallen.
bei mir werden die rahmenlinien (spidernetz) und mindestens ein wert nicht mehr angezeigt.

ist das nur bei mir so?

grüsse
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 23 Januar 2015, 11:16:29
Ist das sonst bei niemanden so?

Bei mir sieht es jetzt wie in dem Foto das beiliegt aus.
Ich hab schon einen anderen Browser versucht, an dem liegt es nicht.
Testweise habe ich eine ältere logproxy.pm und .gplot datei ausprobiert.
Daran liegt es auch nicht.
Mit einer alten fhem.pl startet FHEM gar nicht mehr.
Aber an irgendwas muß es doch liegen.

Hat niemand einen heißen Tip für mich?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 23 Januar 2015, 12:03:14
de letzten änderungen am svg modul machen hier probleme. der thread dazu ist hier: http://forum.fhem.de/index.php/topic,32430.0.html (http://forum.fhem.de/index.php/topic,32430.0.html).

scheinbar gibt es damit noch ein paar schwierigkeiten.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Mr.Heat am 23 Januar 2015, 12:09:24
ich interessiere mich gerade für die Glättung der Kurve. Das wären doch Features, die man auch in Logproxy einbauen könnte.
Leider bin ich damit nicht so bewandert. Hat jemand schon eine Postprocessing-Funktion zur Glättung der Kurve im Einsatz?

Das würde mich sehr freuen. Die neuen Funktionen in der 98_SVG (s. anderer Thread) sind leider wohl nicht das, was ich wollte, da es zu sehr fehlerhaften Darstellungen kommt.

LG MS
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 23 Januar 2015, 12:11:58
schau mal in dem logProxy thread ab hier: http://forum.fhem.de/index.php/topic,26529.msg245039.html#msg245039 (http://forum.fhem.de/index.php/topic,26529.msg245039.html#msg245039). da hat stromer-12 so etwas gemacht.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 23 Januar 2015, 12:12:30
hallo andre,

danke für die info

gruß markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Mr.Heat am 23 Januar 2015, 12:33:17
Hallo,

danke für die Antwort. leider ist da nichts direkt zu finden, ich will auch keinen Mittelwert bilden... nur die Kurve nicht so eckig haben. Das Problem sind dabei auch die unregelmäßigen zeitlichen Abstände.
Wenn ich zeit habe, werde ich vielleicht mal schauen, ob ich was basteln kann bzw. mit was für einem Algorithmus man sowas glättet...


LG
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 23 Januar 2015, 20:35:17
@daschauher: in dem oben verlinkten thread gibt es jetzt eine 98_SVG.pm bei dem das spinnennetzdiagramm wieder funktioniert.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 23 Januar 2015, 20:39:02
Hallo Andre, vielen Dank für die Info!
VG
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 26 Januar 2015, 13:00:57
hallo andre,

mir ist aufgefallen, dass bei nutzung der option extend die min-/ max-wert ermittlung "unschön" umgesetzt ist. die ermittlung bezieht sich auf den bereich extend plus plotrange. schöner wäre, die ermittlung auf den plotrange zu reduzieren, damit die werte mit dem angezeigten plot korrespondieren.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 26 Januar 2015, 14:00:10
die min/max werte kommen im extend fall direkt aus dem zugehörigen dblog bzw. file log.

ich habe bis jetzt vermieden die min/max werte neu zu berechnen. das ist ein 'bekannter' bug da ich vermeiden wollte die string liste mit den punkten mehrfach durch zu gehen.

für die postFn habe ich inzwischen zwei routinen die die string liste in eine array aus sekunden und punkten konvertieren und auch wieder zurück. das wollte ich dann als grundlage verwenden um alle internen berechnungen über dieses array laufen zu lassen und nicht in jedem schritt wieder die string liste hin und her zu konvertieren.

dabei würde dann eine neu ermittlung der min/max  werte automatisch mit abfallen.

dauert aber noch ein bisschen.

gruss
  andre

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 26 Januar 2015, 14:30:36
Zitatdauert aber noch ein bisschen.
danke, kein problem.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 27 Januar 2015, 20:53:00
ab morgen gibt es eine neue routine logProxy_xy2Plot um relativ einfach direkt x,y koordinaten für einen plot angeben zu können.

ein beispiel zur verwendung findet sich hier: http://forum.fhem.de/index.php/topic,32887.msg252825.html#msg252825 (http://forum.fhem.de/index.php/topic,32887.msg252825.html#msg252825)

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: d.schoen am 30 Januar 2015, 09:21:58
Vielen Dank für das geniale Plugin mal vorab!

Ich hätte noch eine Idee bzw. einen Feature-Wunsch, wenn möglich:

Geht es, das aktuelle Zoomlevel (day, week, ...) des Plots abzufragen und auf Basis dieser Information, die dargestellten Daten zu aggregieren?

Konkretes Beispiel:
Wenn ich einen Plot habe, möchte ich auf Zoomlevel "day" gern alle geloggten Messwerte sehen.
Im Zoomlevel "week" würden mir stündliche Mittelwerte reichen.
Im Zoomlevel "month" tägliche Mittelwerte.
Im Zoomlevel "year" wöchentliche Mittelwerte.

Muss dazu das Plugin angepasst werden oder geht das aktuell schon und ich denke nur zu stark um die Ecke?

Gruß
Dominik
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 09:40:02
das geht nicht automatisch aber du kannst in einer postFn über den ersten und letzten punkt den zeitraum bestimmen. wenn du den zeitraum hast kannst du über logProxy_Range2Zoom auf den zoomlevel schliessen. davon kannst du dann alles weitere abhängig machen.

ob es effizienter ist ein jahr vor der anzeige erst auf wöchentliche mittelwerte herunterzurechnen oder einfach alle werte anzuzeigen hängt von der konstellation von client und server ab und lässt sich nicht generell beantworten.

vermutlich ist es sehr viel sinnvoller zusätzlich zu den normalen messwerten auch die stündlichen täglichen und monatlichen mittelwerte direkt bei der entstehung zu erzeugen (z.b. über statistics oder ähnliches) und zu loggen und dann diese im plot zu verwenden und nicht nachträglich zu rechnen.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 30 Januar 2015, 09:46:54
Hallo Andre,

mittlerweilen habe ich etliche Varianten getestet. Ich bekomme es nicht zum Laufen.
Die gplot Datei
#================================================
# Created by FHEM/98_SVG.pm, 2013-09-19 12:14:57
#================================================
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xlabel "Temperatur"
set title 'Behaglichkeit'
set ylabel 'Luftfeuchtigkeit'
set grid y2tics
#================================================

#================================================
#logProxy Func:logProxy_xy2Plot([[22,40]])
#================================================

#================================================
plot "<IN>" using 1:2 axes x1y1 title 'Wert' ls l0 lw 1 with points
#================================================


Aussage des Logs
2015.01.30 09:35:33 1: PERL WARNING: Use of uninitialized value $xmin in subtraction (-) at /opt/fhem/FHEM/98_SVG.pm line 1386.
2015.01.30 09:35:33 1: PERL WARNING: Use of uninitialized value $xmax in subtraction (-) at /opt/fhem/FHEM/98_SVG.pm line 1386.


Hast Du einen Tippe wo mein Fehler liegt?
Danke und ciao
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 09:52:57
du hast xrange und yrange nicht gesetztset xrange [12:28]
set yrange [0:100]


die xrange Anweisung ist sozusagen der trigger um auf den x/y mode umzuschalten.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: d.schoen am 30 Januar 2015, 09:53:49
Hallo Andre,

vielen Dank! Die Average-Werte lasse ich mir bereits loggen. Ist es denn dann möglich je nach Zoomlevel auf *_avg_day bzw *_avg_month umzuschalten, statt die normalen Werte anzuzeigen?

Viele Grüße
Dominik
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 09:55:12
noch nicht automatisch. ich überlege mir etwas.

kannst du mir ein paar log daten zur verfügung stellen ?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 30 Januar 2015, 09:55:53
Hallo Andre,

vielleicht hast du mal wieder einen Tip für mich übrig :-)
Ich hätte gerne die x-Achse etwas ausführlicher beschriftet.
z.B. sind bei der Tages Ansicht nur alle 4 Stunden oder in der Monats Ansicht alle 7 Tage ein senkrechter strich mit der Beschriftung zu sehen.
Kann ich etwas tun damit ich jede Stunde oder jeden Tag einen senkrechten strich habe. Früher war das glaube ich mal so, oder war es nur so bevor ich Logproxy benutze?
Keine Ahnung, gibts ne Möglichkeit das anzupassen?

Gruß Markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 30 Januar 2015, 10:17:10
Hallo Andre,

und wie bekomme ich nun <SPEC1> mit measured-temp und humidity in den letzten Punkt?

Danke und ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 10:45:32
@daschauher: die x achse wird von SVG modul automatisch skaliert und beschriftet. da gibt es zur zeit keine eingriffsmöglichkeit.

@daschauher: das sollte in etwa so gehen:#logProxy Func:logProxy_xy2Plot([[ReadingsVal(<SPEC1>,'measured-temp',0),ReadingsVal(<SPEC1>,'humidity',0)]])

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 30 Januar 2015, 10:49:53
danke andre, dann muß sich im svg modul aber was geändert haben.
da es bis vor kurzem so angezeigt wurde.
naja dann ist das wohl so.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 12:41:07
@d.schoen: bitte teste mal die angehängte version.

es gibt eine neue option scale2reading. damit kann das reading abhängig vom zoom faktor geändert werden:#logProxy DbLog:dbLog,scale2reading={year=>'temperature_avg_day',month=>'temperature_avg_day'}:s300ht_1:temperature::

mögliche keys sind year, month, week, day, qday, hour.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 30 Januar 2015, 12:46:24
Zitat von: frank am 19 Januar 2015, 01:37:18
hallo andre,

ist es möglich, in einer plotfunktion das label des aktuellen plots zu verändern? ich möchte den namen des aktuellen plots im label beim erstellen des plots neu festlegen/verändern. zb mit einer uhrzeit erweitern.

gruss frank
hast du eine idee?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 12:59:22
@frank: das geht über das SVG label attribut.

was möchtest du denn ganz genau machen?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 30 Januar 2015, 13:37:17
Zitatwas möchtest du denn ganz genau machen?
ich habe eine logproxy-funktion erstellt, die mir aus einer handvoll readings eine temperatur-vorhersage plottet. funktioniert soweit wunderbar.

die daten ändern sich über den tag ein paar mal. jetzt möchte ich das label des plots mit der uhrzeit des letzten updates der daten ändern. also aus der plotfunktion heraus, da hier das datum erkannt wird. ich dachte, dass ein ändern des attr label an dieser stelle keinen einfluss mehr hat. aber probieren, geht über studieren.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 13:50:52
das letzte datum hast du in $data{currdate1} das kannst du im label attribut verwenden. im plotfile verwendest du dann <L1> als label. das wird dann durch das attribut ersetzt.

oder du holst das datum mit ReadingVal(...) direkt aus dem reading.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 13:54:03
ich habe die version mit dem neuen scale2reading attribut eben eingecheckt. ist morgen im update enthalten.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 30 Januar 2015, 14:34:07
Hallo Andre,

vorab schon mal sorry für die etwas simple debugging Methode. Meine Programmierkünste sind jetzt nicht die besten.

Ich habe jetzt folgendes im gplot
#logProxy Func:logProxy_xy2Plot([[19,40],[25,34],[22,67],[17,73],[19,40]])
#logProxy Func:logProxy_xy2Plot([[19,20],[25,18],[27,32],[24,60],[21,80],[17,85],[16,75],[17,35],[19,20]])
#logProxy Func:logProxy_xy2Plot([[ReadigsVal("Buero_TC","measured-temp",0),ReadigsVal("Buero_TC","humidity",0)]])


Die sub habe ich um Log outputs erweitert
sub
logProxy_xy2Plot($)
{
  my ($array) = @_;
  my $ret = ";c 0\n";

  my $min = 999999;
  my $max = -999999;
  my $last;

Log 0,"LogInfo >>> 1";
  return ($ret,$min,$max,$last) if( !ref($array) eq "ARRAY" );
Log 0,"LogInfo >>> 2";

  foreach my $point ( @{$array} ) {
    $ret .= ";p $point->[0] $point->[1]\n";
  }
Log 0,"LogInfo >>> $ret";

  return ($ret,$min,$max,$last);
}


Das Log sieht nun so aus
1B22 t:10FC4224 IDcnt:0016
2015.01.30 14:29:28 0: LogInfo >>> 1
2015.01.30 14:29:28 0: LogInfo >>> 2
2015.01.30 14:29:28 0: LogInfo >>> ;c 0
;p 19 40
;p 25 34
;p 22 67
;p 17 73
;p 19 40

2015.01.30 14:29:28 0: LogInfo >>> 1
2015.01.30 14:29:28 0: LogInfo >>> 2
2015.01.30 14:29:28 0: LogInfo >>> ;c 0
;p 19 20
;p 25 18
;p 27 32
;p 24 60
;p 21 80
;p 17 85
;p 16 75
;p 17 35
;p 19 20

2015.01.30 14:29:37 0: HMLAN_Parse: HMLAN_01 R:E1B3D91   stat:0000 t:017A5146 d:FF r:FFCC     m:55 A258 1B3D91 1B7BA2 0000


So wie es aussieht wird für
#logProxy Func:logProxy_xy2Plot([[ReadigsVal("Buero_TC","measured-temp",0),ReadigsVal("Buero_TC","humidity",0)]])
gar nichts gemacht.

Würden die ersten beiden Logs kommen, hätte ich zumindest einen Ansatz. Aber so bin ich vorerst mal ratlos.

Hast Du einen Tipp, ausser die Finger vom Programmieren zu lassen.

Danke und ciao
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 30 Januar 2015, 14:53:44
sorry. da oben war ein tippfehler. es muss natürlich ReadingsVal heissen:#logProxy Func:logProxy_xy2Plot([[ReadingsVal("Buero_TC","measured-temp",0),ReadingsVal("Buero_TC","humidity",0)]])

im log sollte aber auch eine entsprechende meldung stehen.

russ
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: d.schoen am 30 Januar 2015, 15:05:22
Zitat von: justme1968 am 30 Januar 2015, 13:54:03
ich habe die version mit dem neuen scale2reading attribut eben eingecheckt. ist morgen im update enthalten.

gruss
  andre

DANKE! Werde es in den kommenden Tagen testen!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 30 Januar 2015, 15:16:15
Zitat von: justme1968 am 30 Januar 2015, 14:53:44
sorry. da oben war ein tippfehler. es muss natürlich ReadingsVal heissen:#logProxy Func:logProxy_xy2Plot([[ReadingsVal("Buero_TC","measured-temp",0),ReadingsVal("Buero_TC","humidity",0)]])

im log sollte aber auch eine entsprechende meldung stehen.

Wo ist das Loch in das ich mich verkriechen kann :-[

Edit: funktioniert natürlich jetzt.

Danke in demütiger Reue.
walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: wkarl am 30 Januar 2015, 18:19:02
so funktioniert es nun
#logProxy Func:logProxy_xy2Plot([[ReadingsVal("<SPEC1>","measured-temp",0),ReadingsVal("<SPEC1>","humidity",0)]])


ciao walter
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 31 Januar 2015, 10:14:28
Zitat von: justme1968 am 30 Januar 2015, 13:50:52
das letzte datum hast du in $data{currdate1} das kannst du im label attribut verwenden. im plotfile verwendest du dann <L1> als label. das wird dann durch das attribut ersetzt.

oder du holst das datum mit ReadingVal(...) direkt aus dem reading.
das ist zwar noch nicht das, was ich mir vorstelle, aber fürs erste völlig aus reichend. danke.

nun habe ich noch einen wunsch für logproxy. es müsste doch möglich sein, dass man sich für einen logproxy plot die zeitwerte aus einer frei wählbaren spalte aussuchen kann. somit könnte ich internetdaten, die mit einem erfassungszeitpunkt bereitgestellt werden, zeitrichtig darstellen. ebenso wäre das einlesen ganzer datenblöcke, zb für einen ganzen tag, möglich. ausserdem könnte ich zukunftsdaten (vorhersagedaten) plotten. was sagst du dazu?

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 31 Januar 2015, 10:26:57
du kannst daten auch direkt mit dem originalen erfasssungszeitpunkt loggen. das withings und das netatmo modul machen das schon so. man muss nur bei FileLog darauf achten das nicht mehrere devices in ein file geloggt werden da alle zeitpunkte in einem file monoton steigend sein müssen.

um diese vergangenen werte mit vorhersagen zu kombinieren würde ich zwei plot zeilen verwenden. die kurven teile könnten dann aneinander stoßen und sogar verschieden farbig sein.

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 31 Januar 2015, 11:31:59
Zitatdu kannst daten auch direkt mit dem originalen erfasssungszeitpunkt loggen.
das mache ich gerade mit einer kleinen ergänzung im filelog modul.

  if($s =~ m/^T-/) {
#     my $evt = $s;
$t = $1 if($s =~ s/(\d\d\d\d-\d\d-\d\d_\d\d:\d\d:\d\d)$/$t/);
#     Log 1,"----- $ln, $n ----- logTime:$t, logEvt:$s, event:$evt";
  }

bei readings, die mit "T-" beginnen, wird ein erfassungs-timestamp gesucht und gegebenenfalls ausgetauscht.

Zitatman muss nur bei FileLog darauf achten das nicht mehrere devices in ein file geloggt werden da alle zeitpunkte in einem file monoton steigend sein müssen.
ich logge zur zeit alles in eine datei. probleme hatte ich auch vermutet, aber bisher sieht es so aus, dass nur die zeiten pro reading monoton aufsteigend sein müssen. zumindestens habe ich noch keine probleme feststellen können.

nun denke ich aber, dass es schöner wäre, die daten für die x-achse aussuchen zu können. wenn man mit den gepollten daten etwas steuern möchte, ist man ja "gezwungen" mit den veralteten informationen zu arbeiten. dazu ist eine visualisierung der daten beim eintreffen in fhem sinnvoll. andererseits kann man durch gleichzeitige darstellung der daten mit jeweils unterschiedlichen zeitpunkten auch sehr schön feststellen, das eine verzerrung der kurve entstehen kann, da die bereitstellung der daten im internet, oder das abholen der daten durch zb verbindungsprobleme nicht immer die selbe verzögerung hat. aus diesen gründen möchte ich beide zeitpunkte zur verfügung haben. da wäre es natürlich schöner alle daten einer bestimmten messgrösse in einem reading beisammen zu haben und je nach bedarf aussuchen zu können. kann man grundsätzlich ja auch mit doppelten readings realisieren, wie ich das zur zeit umsetze.

aus deiner antwort entnehme ich dann, dass es aus logproxy sicht nicht von interesse ist. schade.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 31 Januar 2015, 11:46:10
aus welchem device kommen denn die daten?

wenn du du zu jedem reading das mit readingsBulkUpdate erzeugt wird $hash->{CHANGETIME}[index] auf die erfassungs zeit setzt wird das reading mit diesem timestamp ins log geschrieben. es gibt auch noch ein $hash->{".updateTimestamp"} mit dem das reading im frontend erscheint.

jetzt verstehe ich erst was du genau machen möchtest.

für eine visualisierung der abweichung zwischen erfassungs- und auslesezeitpunkt würde aber dich auch ein zusätzliches reading mit dem auslesezeitpunk genügen. ohne alle readings zu verdoppeln. in der kurve würden dann die erfassungszitpunkte verwendet und ein zusätzlicher plot könnte jeweils einen punkt an den auslesezeitpunkt setzen. da siehst du dann auch schön ob es hier Unregelmäßigkeiten gab.

in fhem ist es überall ziemlich fest verdrahtet das es immer einzelne messungen sind die dann jeweils einen zeitpunkt haben.

ich sage nicht das es nicht interessant ist. aber ich habe noch keine idee wie man das wirklich allgemeingültig lösen kann. zumal das mit den spalten filelog spezifisch ist und bei dblog nicht funktioniert.

gruss
  andre

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 31 Januar 2015, 13:09:03
Zitatin fhem ist es überall ziemlich fest verdrahtet das es immer einzelne messungen sind die dann jeweils einen zeitpunkt haben.
deswegen mein neuer ansatz, die datenerzeugung (measureTime) ins reading aufzunehmen und die datenerfassung in fhem (logTime) unberührt zu lassen. über ein einfaches userreading, baue ich mir zur zeit ein reading mit den daten und dem measureTimestamp zusammen. sollte sich einmal in ferner zukunft das handling unterschiedlicher timestamps ergeben (die hoffnung stirbt zuletzt  ;) ), könnten module, eventuell sogar über attribut wählbar, readings gleich mit measureTimestamp erzeugen.

Zitatfür eine visualisierung der abweichung zwischen erfassungs- und auslesezeitpunkt würde aber dich auch ein zusätzliches reading mit dem auslesezeitpunk genügen. ohne alle readings zu verdoppeln. in der kurve würden dann die erfassungszitpunkte verwendet und ein zusätzlicher plot könnte jeweils einen punkt an den auslesezeitpunkt setzen. da siehst du dann auch schön ob es hier Unregelmäßigkeiten gab.
im zusammenspiel mit event-on-change und unterschiedlichen datenreadings, die nicht alle gleichzeitig aktualisiert werden natürlich nicht sehr komfortabel, aber sicherlich auch irgendwie machbar. zwei echte plots nebeneinander sind in ihrer aussagekraft damit in keinem fall vergleichbar.

Zitataus welchem device kommen denn die daten?
zur zeit hauptsächlich über httpmod. ausserdem experimentiere ich gerade mit wettermodulen, zb proplanta.

Zitatich sage nicht das es nicht interessant ist. aber ich habe noch keine idee wie man das wirklich allgemeingültig lösen kann. zumal das mit den spalten filelog spezifisch ist und bei dblog nicht funktioniert.
als fritzbox-user ist für mich dblog leider bisher nicht nutzbar. daher habe ich keine erfahrung, was da möglich ist, oder eben nicht. mit dblog sind demnach kombinierte readings wie: "state: T: 12 H: 54 D: 6.8 L: 435 t: 2015-01-31_10:47:15" nicht handhabbar? auch ohne zusätzlichen timestamp nicht? ok, wusste ich nicht.

naiverweise hatte ich gehofft, dass eine option, wie zb timeBase=10, die nötigen zeitpunkte einfach aus einer anderen spalte einsammeln könnte.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 01 Februar 2015, 11:00:24
Hallo,

bei mir funktioniert die "extend"-Funktion nicht für den aktuellen Tag ! Es fehlen einige Messreihen komplett ...
Ohne Extend sind diese aber vorhanden.
Ich "hänge" an jede Messreihe 12 Stunden vorne und hinten hin.

# Created by FHEM/98_SVG.pm, 2015-02-01 10:47:58
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid y2tics
set ylabel "Temperatur Grad-C"
set y2label "Anzahl"
set yrange [-20:80]
set y2range [0:50]

#MyLP FileLog:FileLog_KM271,extend=60*60*12:4:KM271.WW_Isttemperatur\x3a::
#MyLP FileLog:FileLog_KM271,extend=60*60*12:4:KM271.Aussentemperatur\x3a::
#MyLP FileLog:FileLog_KM271,extend=60*60*12:4:KM271.HK1_Raumisttemperatur\x3a::
#MyLP FileLog:FileLog_KM271,extend=60*60*12:4:KM271.HK1_Pumpe\x3a:0:($fld[3]/20)+12
#MyLP FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.countsPerDay\x3a:0:($fld[3])
#MyLP FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.value\x3a:0:($fld[3])*5
#MyLP FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.pulseTimePerDay\x3a:0:($fld[3])/60/60

plot "<IN>" using 1:2 axes x1y1 title 'WarmWasser' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'AussenTemp' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'InnenTemp' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'HeizungsPumpe' ls l4 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'BrennerStarts' ls l5 lw 0.5 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Brenner ein/aus' ls l5 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Brennerlaufzeit (h)' ls l6 lw 1 with lines


Im Anhang die Schaubilder von Heute, Vortag und Ohne Extend bei Warmwasser ...

Gruss
Joe
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 01 Februar 2015, 11:03:43
zeig mal bitte die ausgabe von 'Show preporecessed Input'

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 01 Februar 2015, 12:30:05
Zitat von: justme1968 am 01 Februar 2015, 11:03:43
zeig mal bitte die ausgabe von 'Show preporecessed Input'

gruss
  andre
get MyLP CURRENT INT 2015-02-01_00:00:00 2015-02-02_00:00:01 FileLog:FileLog_KM271,extend=60*60*12:4:KM271.WW_Isttemperatur\x3a:: FileLog:FileLog_KM271,extend=60*60*12:4:KM271.Aussentemperatur\x3a:: FileLog:FileLog_KM271,extend=60*60*12:4:KM271.HK1_Raumisttemperatur\x3a:: FileLog:FileLog_KM271,extend=60*60*12:4:KM271.HK1_Pumpe\x3a:0:($fld[3]/20)+12 FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.countsPerDay\x3a:0:($fld[3]) FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.value\x3a:0:($fld[3])*5 FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.pulseTimePerDay\x3a:0:($fld[3])/60/60

#4:KM271.WW_Isttemperatur\x3a::
#4:KM271.Aussentemperatur\x3a::
#4:KM271.HK1_Raumisttemperatur\x3a::
#4:KM271.HK1_Pumpe\x3a:0:($fld[3]/20)+12
2015-02-01_00:00:00 47
2015-02-01_00:00:00 0
2015-02-01_01:00:00 0
2015-02-01_02:00:00 0
2015-02-01_03:00:00 0
2015-02-01_04:00:00 0
2015-02-01_05:00:00 0
2015-02-01_06:00:00 0
2015-02-01_06:30:04 1
2015-02-01_06:45:04 1
2015-02-01_07:00:00 1
2015-02-01_07:09:35 2
2015-02-01_07:16:02 2
2015-02-01_07:33:09 3
2015-02-01_07:37:35 3
2015-02-01_07:57:29 4
2015-02-01_08:00:00 4
2015-02-01_08:01:47 4
2015-02-01_08:19:15 5
2015-02-01_08:23:51 5
2015-02-01_08:41:32 6
2015-02-01_08:45:49 6
2015-02-01_09:00:00 6
2015-02-01_09:06:11 7
2015-02-01_09:10:08 7
2015-02-01_09:42:37 8
2015-02-01_09:46:34 8
2015-02-01_10:00:00 8
2015-02-01_10:00:49 9
2015-02-01_10:06:04 9
2015-02-01_10:06:28 9
2015-02-01_10:19:29 10
2015-02-01_10:25:48 10
2015-02-01_10:40:03 11
2015-02-01_10:46:19 11
2015-02-01_11:00:00 11
2015-02-01_11:01:59 12
2015-02-01_11:08:23 12
2015-02-01_11:08:52 12
2015-02-01_11:12:12 12
2015-02-01_11:12:37 12
2015-02-01_11:13:20 12
2015-02-01_11:13:47 12
2015-02-01_11:15:59 12
2015-02-01_11:16:25 12
2015-02-01_11:19:50 12
2015-02-01_11:20:15 12
2015-02-01_11:22:43 12
2015-02-01_11:23:11 12
2015-02-01_11:24:54 12
2015-02-01_11:25:41 12
2015-02-01_11:27:53 13
2015-02-01_11:28:29 13
2015-02-01_11:29:09 13
2015-02-01_11:32:08 13
2015-02-01_11:32:37 13
2015-02-01_11:33:16 13
2015-02-01_11:34:10 13
2015-02-01_11:34:39 13
2015-02-01_11:39:02 13
2015-02-01_11:39:30 13
2015-02-01_11:41:43 13
2015-02-01_11:42:10 13
2015-02-01_11:47:10 13
2015-02-01_11:47:41 13
2015-02-01_11:51:57 13
2015-02-01_11:52:26 13
2015-02-01_11:55:35 13
2015-02-01_11:56:05 13
2015-02-01_11:58:21 14
2015-02-01_11:59:30 14
2015-02-01_12:00:00 14
2015-02-01_12:00:00 14
2015-02-01_12:03:56 14
2015-02-01_12:06:23 14
2015-02-01_12:06:50 14
2015-02-01_12:11:01 14
2015-02-01_12:11:31 14
2015-02-01_12:13:18 14
2015-02-01_12:13:47 14
2015-02-01_12:16:05 14
2015-02-01_12:17:14 14
#4:BrennerCounter.countsPerDay\x3a:0:($fld[3])
2015-02-01_00:00:00 0
2015-02-01_01:00:00 0
2015-02-01_02:00:00 0
2015-02-01_03:00:00 0
2015-02-01_04:00:00 0
2015-02-01_05:00:00 0
2015-02-01_06:00:00 0
2015-02-01_06:30:04 5
2015-02-01_06:45:04 0
2015-02-01_07:00:00 0
2015-02-01_07:09:35 5
2015-02-01_07:16:02 0
2015-02-01_07:33:09 5
2015-02-01_07:37:35 0
2015-02-01_07:57:29 5
2015-02-01_08:00:00 5
2015-02-01_08:01:47 0
2015-02-01_08:19:15 5
2015-02-01_08:23:51 0
2015-02-01_08:41:32 5
2015-02-01_08:45:49 0
2015-02-01_09:00:00 0
2015-02-01_09:06:11 5
2015-02-01_09:10:08 0
2015-02-01_09:42:37 5
2015-02-01_09:46:34 0
2015-02-01_10:00:00 0
2015-02-01_10:00:49 5
2015-02-01_10:06:04 5
2015-02-01_10:06:28 0
2015-02-01_10:19:29 5
2015-02-01_10:25:48 0
2015-02-01_10:40:03 5
2015-02-01_10:46:19 0
2015-02-01_11:00:00 0
2015-02-01_11:01:59 5
2015-02-01_11:08:23 5
2015-02-01_11:08:52 0
2015-02-01_11:12:12 0
2015-02-01_11:12:37 0
2015-02-01_11:13:20 0
2015-02-01_11:13:47 0
2015-02-01_11:15:59 0
2015-02-01_11:16:25 0
2015-02-01_11:19:50 0
2015-02-01_11:20:15 0
2015-02-01_11:22:43 0
2015-02-01_11:23:11 0
2015-02-01_11:24:54 0
2015-02-01_11:25:41 0
2015-02-01_11:27:53 5
2015-02-01_11:28:29 5
2015-02-01_11:29:09 5
2015-02-01_11:32:08 5
2015-02-01_11:32:37 5
2015-02-01_11:33:16 0
2015-02-01_11:34:10 0
2015-02-01_11:34:39 0
2015-02-01_11:39:02 0
2015-02-01_11:39:30 0
2015-02-01_11:41:43 0
2015-02-01_11:42:10 0
2015-02-01_11:47:10 0
2015-02-01_11:47:41 0
2015-02-01_11:51:57 0
2015-02-01_11:52:26 0
2015-02-01_11:55:35 0
2015-02-01_11:56:05 0
2015-02-01_11:58:21 5
2015-02-01_11:59:30 5
2015-02-01_12:00:00 5
2015-02-01_12:00:00 5
2015-02-01_12:03:56 0
2015-02-01_12:06:23 0
2015-02-01_12:06:50 0
2015-02-01_12:11:01 0
2015-02-01_12:11:31 0
2015-02-01_12:13:18 0
2015-02-01_12:13:47 0
2015-02-01_12:16:05 0
2015-02-01_12:17:14 0
#4:BrennerCounter.value\x3a:0:($fld[3])*5
2015-02-01_00:00:00 4.52
2015-02-01_00:00:00 0
2015-02-01_01:00:00 0
2015-02-01_02:00:00 0
2015-02-01_03:00:00 0
2015-02-01_04:00:00 0
2015-02-01_05:00:00 0
2015-02-01_06:00:00 0
2015-02-01_06:30:04 0
2015-02-01_06:45:04 0.25
2015-02-01_07:00:00 0.25
2015-02-01_07:09:35 0.25
2015-02-01_07:16:02 0.3575
2015-02-01_07:33:09 0.3575
2015-02-01_07:37:35 0.431388888888889
2015-02-01_07:57:29 0.431388888888889
2015-02-01_08:00:00 0.473333333333333
2015-02-01_08:01:47 0.503055555555556
2015-02-01_08:19:15 0.503055555555556
2015-02-01_08:23:51 0.579722222222222
2015-02-01_08:41:32 0.579722222222222
2015-02-01_08:45:49 0.651111111111111
2015-02-01_09:00:00 0.651111111111111
2015-02-01_09:06:11 0.651111111111111
2015-02-01_09:10:08 0.716944444444444
2015-02-01_09:42:37 0.716944444444444
2015-02-01_09:46:34 0.782777777777778
2015-02-01_10:00:00 0.782777777777778
2015-02-01_10:00:49 0.782777777777778
2015-02-01_10:06:04 0.782777777777778
2015-02-01_10:06:28 0.789444444444445
2015-02-01_10:19:29 0.789444444444445
2015-02-01_10:25:48 0.894722222222222
2015-02-01_10:40:03 0.894722222222222
2015-02-01_10:46:19 0.999166666666667
2015-02-01_11:00:00 0.999166666666667
2015-02-01_11:01:59 0.999166666666667
2015-02-01_11:08:23 0.999166666666667
2015-02-01_11:08:52 1.00722222222222
2015-02-01_11:12:12 1.00722222222222
2015-02-01_11:12:37 1.00722222222222
2015-02-01_11:13:20 1.00722222222222
2015-02-01_11:13:47 1.00722222222222
2015-02-01_11:15:59 1.00722222222222
2015-02-01_11:16:25 1.00722222222222
2015-02-01_11:19:50 1.00722222222222
2015-02-01_11:20:15 1.00722222222222
2015-02-01_11:22:43 1.00722222222222
2015-02-01_11:23:11 1.00722222222222
2015-02-01_11:24:54 1.00722222222222
2015-02-01_11:25:41 1.00722222222222
2015-02-01_11:27:53 1.00722222222222
2015-02-01_11:28:29 1.00722222222222
2015-02-01_11:29:09 1.01833333333333
2015-02-01_11:32:08 1.01833333333333
2015-02-01_11:32:37 1.02638888888889
2015-02-01_11:33:16 1.03722222222222
2015-02-01_11:34:10 1.03722222222222
2015-02-01_11:34:39 1.03722222222222
2015-02-01_11:39:02 1.03722222222222
2015-02-01_11:39:30 1.03722222222222
2015-02-01_11:41:43 1.03722222222222
2015-02-01_11:42:10 1.03722222222222
2015-02-01_11:47:10 1.03722222222222
2015-02-01_11:47:41 1.03722222222222
2015-02-01_11:51:57 1.03722222222222
2015-02-01_11:52:26 1.03722222222222
2015-02-01_11:55:35 1.03722222222222
2015-02-01_11:56:05 1.03722222222222
2015-02-01_11:58:21 1.03722222222222
2015-02-01_11:59:30 1.03722222222222
2015-02-01_12:00:00 1.04555555555556
2015-02-01_12:00:00 1.04555555555556
2015-02-01_12:03:56 1.11111111111111
2015-02-01_12:06:23 1.11111111111111
2015-02-01_12:06:50 1.11111111111111
2015-02-01_12:11:01 1.11111111111111
2015-02-01_12:11:31 1.11111111111111
2015-02-01_12:13:18 1.11111111111111
2015-02-01_12:13:47 1.11111111111111
2015-02-01_12:16:05 1.11111111111111
2015-02-01_12:17:14 1.11111111111111
#4:BrennerCounter.pulseTimePerDay\x3a:0:($fld[3])/60/60


Gruss
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 02 Februar 2015, 12:21:56
bitte häng mir auch mal die beiden log files hier an.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 02 Februar 2015, 20:43:40
Hier die Logfiles  ...
Gruss
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 04 Februar 2015, 12:03:11
ich kann das problem mit deinen files noch nicht nachstellen. auch wenn ich die systemzeit zurück drehe und die log files aufhören lasse.

tritt das bei dir reproduzierbar jeden tag auf?

kannst du bitte mal die ausgabe vonget FileLog_BrennerCounter CURRENT - 2015-02-03_12:00:00 2015-02-05_12:00:01 4:BrennerCounter.countsPerDay\x3a:0:($fld[3])undget MyLP CURRENT - 2015-02-03_12:00:00 2015-02-05_12:00:01 FileLog:FileLog_BrennerCounter,extend=60*60*12:4:BrennerCounter.countsPerDay\x3a:0:($fld[3])

die zeitpunkte bitte so anpassen das es vom vorherigen tag 12 uhr bis zum nächsten tag 12 uhr  geht.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 04 Februar 2015, 21:15:23
Hab eben nochmal nachgeschaut, aber heute sieht es OK aus.
Das verstehe ich nicht. Werde morgen früh nochmals reinschauen

Gruss
Joe
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: cotecmania am 05 Februar 2015, 09:00:54
Auch heute alles ok ...
Kam da vielleicht was durchs Update ...

Durch den grossen extend werden bei mir nun auch die Daten in der Überschrift "falsch" ausgegeben, da ich auch die MAX-Funktion verwende und diese auf mehr als den angezeigten Bereich zugreift ...

Gruss
Joe
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 05 Februar 2015, 09:36:48
ja. das ist 'bekannt' und das muss ich noch beheben.

gruß
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: HotteFred am 11 Februar 2015, 22:53:09
Hi Andre,

wenn ich x/y Daten plotten möchte und die X-Achse von -20 nach 20 anlege, so ist das kein Problem. Wenn ich aber 20 bis -20 definieren möchte, so geht das bei mir nicht.
Siehst du eine Möglichkeit, das einzubauen? oder kann ich das irgendwie selber umgehen?

Viele Grüße
Fred
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 12 Februar 2015, 00:20:33
die x achse muss immer von kleinen werten links zu grossen werten rechts verlaufen.

das ist aber eigentlich 'normal'. was spricht denn gegen diese normale orientierung?

was sind das denn für werte um die es geht?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: HotteFred am 12 Februar 2015, 11:16:41
Zitat von: justme1968 am 12 Februar 2015, 00:20:33

was sind das denn für werte um die es geht?

gruss
  andre

Hallo Andre, es geht mir um die grafische Darstellung meiner aktuell eingestellten Heizkennlinie.
Schau mal in diese Dokument auf Seite 34.
http://de.documents.buderus.com/download/pdf/file/6720641642.pdf (http://de.documents.buderus.com/download/pdf/file/6720641642.pdf)

Gruß
Fred
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 13 Februar 2015, 15:20:28
ich hab mal kurz im svg modul geschaut. das wird recht aufwändig das einzubauen.

vermutlich ist es einfacher wenn du die x achse wie bisher laufen lässt die punkte so umrechnest (an x=0 spiegeln) das die darstellung so ausschaut wie du es willst. du kannst dann per xtics die beschriftung so anpassen das alles korrekt ausschaut.

der einzige nachteil wäre das beim messen die 'falschen' Koordinaten angezeigt werden würden.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: HotteFred am 13 Februar 2015, 16:01:07
Zitat von: justme1968 am 13 Februar 2015, 15:20:28

vermutlich ist es einfacher wenn du die x achse wie bisher laufen lässt die punkte so umrechnest (an x=0 spiegeln) das die darstellung so ausschaut wie du es willst. du kannst dann per xtics die beschriftung so anpassen das alles korrekt ausschaut.

Hallo Andre,

danke. Dann schaue ich mir das mal an...

Viele Grüße
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Februar 2015, 13:39:42
Servus Andre,
dein Modul läuft nun seit einiger Zeit sehr zuverlässig...vielen Dank für die tolle Arbeit!
Mir ist gerade aufgefallen das mein Logfile ziemlich viele Einträge dieser Art hat:
PERL WARNING: Argument "off" isn't numeric in multiplication (*) at ./FHEM/98_logProxy.pm line 1037
Hast du eine Ahnung woher das kommt? Hab ich was falsches konfiguriert oder ist es evtl ein Bug?
Ich habe noch nicht nachgesehen da ich logproxy überall verwende und ich so einige plots angelegt habe.
Vielleicht hast du einen Tip für mich.

Grus Markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 18 Februar 2015, 18:34:21
du musst (wie sonst auch beim plotten) nicht numerische reading erst in numerische umwandeln bzw. dafür sorgen das deine column sec genau genug ist um nicht aus versehen nicht numerische readings zu erwischen.

das gilt auch für redings die manchmal zahlen und manchmal nicht numerisch werte enthalten. also z.bn on und off und dim stufen.

die fehler zeile deutet darauf hin das du das spinnennetz diagramm verwendest.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 18 Februar 2015, 21:34:40
Ich glaube ich weiß wo das Problem steckt. Es ist richtig, ich verwende das Spinnennetz Diagramm.
Allerdings habe ich am Code nichts geändert, was mich aber zuerst stutzig gemacht hat.
Doch dann ist es mir wieder eingefallen was jetzt plötzlich anders ist.
Ursprünglich hatte ich den Einstellbereich meiner Thermostate begrenzt auf z.B. 15 bis 21 Grad.
Dieses habe ich vor kurzem etwas gelockert auf das Maximum, 4,5 bis 30 Grad. Hier kann man dann anstelle einer Temperatur auch on und off wählen.
Was ich auch bei 2 Thermostaten gemacht habe, da ich sie nur als Anzeige benutze und dort gar keine Heizung vorhanden ist.

Danke für deine Info, dann weiß ich jetzt woher es kommt und das es nichts schlimmes ist.

grüsse
markus

p.s.:
oder gibt es vielleicht eine einfache Lösung wenn in dem Reading hier ein "off" auftaucht dieses in eine "0" umzuwandeln?
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Tom3011 am 18 Februar 2015, 22:54:13
Hallo zusammen
ich weiss leider nicht ob ich hier richtig bin, aber wenn nicht werde ich hoffentlich weitergereicht :)
seit dem letzten update sieht mein Plot nicht mehr so aus wie vorher
An den Einstellungen habe ich nichts verändert.

nochmal Sorry sollte ich falsch sein

Gruß Tom3011
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Tom3011 am 19 Februar 2015, 09:16:53
Hallo zusammen
mir ist aufgefallen, dass mein Logfile früher anderst aussah als heute.
hoffentlich kann mir jemand helfen

Danke

Gruß Tom
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 03 März 2015, 20:16:21
hallo andre,

ich bekomme immer warnings bei nutzung von "constY" mit folgendem <value>:
(split(" ",ReadingsVal("Wetter.Nord","R-lowBatLimitTHPL",0)))[0]

das reading liefert "1 V". wenn ich den ausdruck in der eingabezeile von fhem ausführe bekomme ich "1" angezeigt. warum funktioniert das nicht über den svg-editor? also geplottet wird schon, aber halt mit "gemeckere". genauso, als wenn ich nur readingsval benutze.

2015.03.03 19:58:46.579 1: PERL WARNING: Argument "1 V" isn't numeric in numeric lt (<) at ./FHEM/98_SVG.pm line 1116.
2015.03.03 19:58:46.607 1: PERL WARNING: Argument "1 V" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1118.
2015.03.03 19:58:46.964 1: PERL WARNING: Argument "1 V" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 1946.


gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 03 März 2015, 20:36:34
das problem ist das in der column_spec dürfen keine leerzeichen vorkommen. das gilt für alle log devices. also auch filelog und dblog bzw ursächlich das svg modul.

du kannst entweder alles in eine sub in 99_myUtils auslagern und diese nur aufrufen oder die zeile z.b. auf einen regex match auf \d* umbauen und dann $1 verwenden. dann kommst du ohne leerzeichen aus.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 03 März 2015, 21:22:33
danke. aber echt tricky, da doppelpunkt natürlich auch nicht ging. damit habe ich jetzt wohl erfolg:

if(ReadingsVal("Wetter.Sued","R-lowBatLimitTHPL",0)=~/^(\d+).*/){$1}else{0}

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: vbs am 14 März 2015, 00:17:16
Ich hab jetzt mal angefangen, mich mit dem logProxy zu beschäftigen, da ich gerne bei solchen Plots die "Anfangslücke" beheben würde:
(https://dl.dropboxusercontent.com/u/24641738/svg_anfang.jpg)

Der Weg wäre ja wahrscheinlich die extend-Option. Das funktioniert auch soweit. Mein Problem ist nun, dass ich ja bei extend ein Wert angeben muss. Was trägt man denn da ein, damit es "immer funktioniert" aber trotzdem nicht beliebig groß ist? Ich weiß ja nicht, wie groß die Lücke ist und ich möchte da ja auch ungern "99999999" eintragen.

Die einzige Idee, die ich hätte, wäre, da etwas mit event-min-interval im Device zu machen. Also irgendwie dafür zu sorgen, dass zB mindestens alle 4 Stunden ein Event erzeugt wird. Also 4 Stunden als Obergrenze. Dann könnte man zum Beispiel 4,5 Stunden bei extend eintragen mit dem Wissen, dass ich dann auf jeden Fall auf ein Event treffe.

Oder wie macht ihr das?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 14 März 2015, 00:27:06
das ist eine möglichkeit, die andere ist etwas großzügig zu sein und 1-2 tage anzugeben. das scheint zwar auf den ersten blick viel unnötige daten zu beuteten aber tatsächlich fällt es absolut gesehen nicht wirklich ins gewicht wenn es nicht gerade auf einer fritzbox läuft.

wenn du z.b. einen tag darstellst hast du zwar die datenmenge theoretisch verdreifacht, aber die gesamtmenge ist immer noch überschaubar. wenn du weiter raus zoomst und auf monats ebene bist hast du die datenmenge um 10% vergrößert auf jahresebene um noch nicht mal 1%. da fällt es denn in relation zu dein eigentlichen daten nicht mehr ins gewicht.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: vbs am 14 März 2015, 00:43:19
Ok, danke, da du da deinen Segen gibts, hab ich jetzt einfach mal 1 Tag eingetragen... Ich denke mal, innerhalb eines Tages sollte sich Temperatur/Feuchte ja wohl mal ändern... Das mit dem event-min-interval würde wieder in ein elendes Gefummel ausarten :>
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 14 März 2015, 15:35:54
ZitatDas mit dem event-min-interval würde wieder in ein elendes Gefummel ausarten :>
es gibt auch was neues:

Zitatevent-aggregator

@andre
könnte man nicht die option "extend=0" ändern, sodass die den ersten "normalen" plot-wert nach hinten verlängert. oder als extra option, falls extend im angegebenen zeitraum nichts findet. zb für langsame, kontinuierliche änderungen: batteryVoltage, kellerfeuchte, wasserstand, ...
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 01 April 2015, 12:24:49
Hallo,

ich habe gestern seit etwas längerer Zeit mal wieder ein Update gemacht.
Leider funktioniert seitdem das Plotten der Heating_Control Profile nicht mehr.
Statt dessen bekomme ich im log folgende Fehlermeldung:
logProxy_WeekProfile2Plot: no profile hash given

Das Profil ist im Ploteditor wie folgt eingetragen:
logProxy_WeekProfile2Plot("OG.EZ.MAX.HCB",$from,$to)

Hier noch ein list OG.EZ.MAX.HCB:
Internals:
   COMMAND    {if(ReadingsVal("ecostate","state",0) != 1) {fhem("set @ desiredTemperature %")}}
   DEF        OG.EZ.MAX.WT Mo-So|05:30|21.0 Mo-So|18:00|17.0 {if(ReadingsVal("ecostate","state",0) != 1) {fhem("set @ desiredTemperature %")}}
   DEVICE     OG.EZ.MAX.WT
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       OG.EZ.MAX.HCB
   NR         407
   Profil 0: Sonntag 05:30:00 21.0, 18:00:00 17.0
   Profil 1: Montag 05:30:00 21.0, 18:00:00 17.0
   Profil 2: Dienstag 05:30:00 21.0, 18:00:00 17.0
   Profil 3: Mittwoch 05:30:00 21.0, 18:00:00 17.0
   Profil 4: Donnerstag 05:30:00 21.0, 18:00:00 17.0
   Profil 5: Freitag 05:30:00 21.0, 18:00:00 17.0
   Profil 6: Samstag 05:30:00 21.0, 18:00:00 17.0
   STATE      21.0
   TYPE       Heating_Control
   CHANGETIME:
   Helper:
     Dblog:
       Nextupdate:
         Mydblog:
           TIME       1427859000.12439
           VALUE      18:00:00
       Nextvalue:
         Mydblog:
           TIME       1427859000.12439
           VALUE      17.0
       State:
         Mydblog:
           TIME       1427859000.12439
           VALUE      21.0
   Readings:
     2015-04-01 05:30:00   nextUpdate      18:00:00
     2015-04-01 05:30:00   nextValue       17.0
     2015-04-01 05:30:00   state           21.0
   SWITCHINGTIMES:
     Mo-So|05:30|21.0
     Mo-So|18:00|17.0
   Timer:
     Og.ez.max.hcb_05:30:00:
       HASH       OG.EZ.MAX.HCB
       MODIFIER   05:30:00
       NAME       OG.EZ.MAX.HCB_05:30:00
     Og.ez.max.hcb_18:00:00:
       HASH       OG.EZ.MAX.HCB
       MODIFIER   18:00:00
       NAME       OG.EZ.MAX.HCB_18:00:00
     Og.ez.max.hcb_settimerofday:
       HASH       OG.EZ.MAX.HCB
       MODIFIER   SetTimerOfDay
       NAME       OG.EZ.MAX.HCB_SetTimerOfDay
   Daynumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   Helper:
     DESIRED_TEMP_READING
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
   Longdays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
   Profil:
     05:30:00:
       NEXTPARA   17.0
       NEXTSWITCH 18:00:00
       PARA       21.0
       TIM        1427859000
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     18:00:00:
       NEXTPARA   21.0
       NEXTSWITCH 05:30:00
       PARA       17.0
       TIM        1427904000
       TAGE:
         0
         1
         2
         3
         4
         5
         6
   Shortdays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
Attributes:
   room       2.00_Heizung


Eine erste Fehlersuche hat ergeben, dass die Funktion logProxy_Heating_Controll2WeekProfile in Zeile 124
  return undef if( !defined($defs{$d}->{helper}{SWITCHINGTIME}) );
ein undef zurückliefert.

Vor dem Update funktionierte noch alles. Im svn log habe ich allerdings keine offensichtliche Änderung gesehen, die zu dem Problem führen könnte.

Hat jemand ein ähnliches Problem, oder einen Tipp woran es liegen könnte?

Gruß,
Gero
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 01 April 2015, 12:34:58
die internals von WeekdayTimer haben sich mit dem update geändert. ich muss mal schauen wie ich jetzt an die daten komme.

gruss
  andre

edit: ich habe mal bei dietmar nachgefragt ob wir das vielleicht über eine feste schnittstelle hin bekommen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: vbs am 20 April 2015, 21:31:27
Hi Andre,

ich hab da so eine fixe Idee bzgl. des Problems, dass oft links im Plot bis zur Y-Achse eine Lücke entsteht, da dort keine alten Daten vorhanden sind. Man kann dem Problem ja beikommen, indem man bei logProxy "extend" angibt und damit den angefragten Datenbereich vergrößert.

Die Idee wäre jedoch, dass logProxy sich einerseits (zeitlich) genau die Daten zum plottenden Bereich holt (ohne extend zu nutzen). In den Daten wird nun der Zeitbereich von der linken Y-Achse bis zum ersten Datenwert fehlen (mehr oder weniger große Lücke). Jetzt würde logProxy eine zweite Anfrage stellen und sich den gesamten Bereich zeitlich VOR dem Plotbereich holen. Um die Datenmenge gering zu halten, würde man die Anfrage jedoch SQL-LIMIT auf einen einzelnen Record beschränken (und mit ODER DESC entsprechend sortieren). Damit hätte man dann in jedem Fall genau einen passenden Datenpunkt, um die Lücke im Plot nach "links" zu füllen.

Man müsste dazu nur DbLog_Get anpassen, so dass man einen weiteren Parameter für LIMIT angeben kann. Und dann eben aus logProxy eine zweite Anfrage starten, die sich per LIMIT=1 genau einen Datenpunkt holt.

Was hältst du von der Idee? Denkst du, dass da so machbar wäre? Mir ist klar, dass du besseres zu tun hast als Feature-Requests von irgendwelchen Leuten einzubauen. Daher würde ich mich daran auch selbst versuchen wollen. Ich würde jedoch erstmal abfragen wollen, was du generell davon hältst, bevor ich mir die Arbeit mache.

Ich hoffe, ich konnte das jetzt einigermaßen verständlich erklären.
Titel: logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 20 April 2015, 21:58:44
ich weiß was du meins aber ich habe das gefühl das es unterm strich dadurch nicht effizienter wird.

statt einer anfrage an die db sind es zwei und dann muss der zusätzliche wert auch noch in die erste liste eingebaut werden. zumal die daten vor dem anfang für das limit 1 ja auch noch umgekehrt sortiert werden müssen.

das ganze würde so einfach auch nur für dblog funktionieren. bei filelog ist das deutlich aufwändiger.

ich bin bis jetzt der meinung das sich der extend zeitraum recht gut abschätzen lässt und der zusätzliche bereich die eigentliche db anfrage nicht merklich verzögert. für den fall das man auf tages oder stunden ebene ist ist die gesamt menge inklusive extend immer noch klein. auf monats und jahresebene fallen die werte die über extend dazukommen nicht wirklich ins gewicht.

bevor du das angehst und die zusätzliche komplexität ins spiel kommt solltest du versuchen nachzumessen welches verhältnis die db abfrage zur gesamtzeit zum darstellen eines plots hat und welcher teil davon auf extend entfällt.

dieser teil ist theoretisch alles was sich durch deinen vorschlag optimieren ließe.

ich habe das gefühl das sich mit dem gleichen aufwand an zeit an anderen stellen in fhem deutlich mehr herausholen lässt.

du hättest damit übrigens nur den anfang des plots repariert. am ende musst du gleiche machen sobald zurück geblättert wird. das wären dann schon drei abfragen und werte sammeln.

wenn du die gesamtzeit für dblog und filelog wirklich merklich verbessern kannst nur zu.

gruß
  andre
Titel: logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 20 April 2015, 22:00:11
ich weiß was du meins aber ich habe das gefühl das es unterm strich dadurch nicht effizienter wird.

statt einer anfrage an die db sind es zwei und dann muss der zusätzliche wert auch nich in die erste liste eingebaut werden.

das ganze würde so einfach auch nur für dblog funktionieren. bei filelog ist das deutlich aufwändiger. zumal die Daten vor dem anfang für das limit 1 ja auch noch umgekehrt sortiert werden müssen.

ich bin bis jetzt der meinung das sich der extend zeitraum recht gut abschätzen lässt und der zusätzliche bereich die eigentliche db anfrage nicht merklich verzögert. für den Fall das man auf tages oder stunden ebene ist ist sie gesamt menge inklusive extend immer noch klein. auf monats und jahresebene fallen die werte dir über extend dazukommen nicht wirklich ins gewicht.

bevor du das angehst und die zusätzliche komplexität ins spiel kommt solltest du versuchen nachzumessen welches verhältnis die die db abfrage zur gesamtzeit zum darstellen eines plots hat und welcher teil davon auf extend entfällt.

dieser teil ist theoretisch alles was sich durch deinen vorschlag optimieren ließe.

ich habe das gefühl das sich mit dem gleichen aufwand an zeit an anderer stelle deutlich mehr herausholen lässt.

du hättest damit übrigens nur den anfang des plots repariert. am ende musst du gleiche machen sobald zurück geblättert wird. das wären dann schon drei abfragen und werte sammeln.

wenn du die gesamtzeit für dblog und filelog wirklich merklich verbessern kannst nur zu.

gruß
  andre

ps: ein beispiel das mindestens 1-2 grössenordnungen mehr optimierung bietet ist beim raus zoomen von den echten messwerten auf stunden oder tages mittelwerte umzuschalten.

das reduziert z.b. die gesamt datenmenge mancher plots auf jahresebene von mehreren zehn tausend auf ein paar hundert.

das habe ich hier schon testweise laufen und es macht richtig spaß :)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: vbs am 20 April 2015, 22:18:04
Also mir gehts da eigentlich nicht um die Performance, sondern eher um die Benutzbarkeit. Ich bin nicht sicher, ob man diesen extend-Zeitraum immer so problemlos festlegen kann. Wenn ich beispielsweise desired-temp eines Thermostates plotten möchte, dann kann es ja sein, dass der sich auch mal monatelang nicht ändert. Trotzdem würde ich gerne im Plot den letzten Wert sehen.
Abgesehen davon, ist es einfach nicht sehr elegant, per extend einen per Daumen abgeschätzten "großen" Wert einzutragen, der dann hoffentlich jetzt und in Zukunft ausreichend ist. Fühlt sich irgendwie "unschön" an... :/

Aber das mit der rechten Seite beim Zurückscrollen ist natürlich ein guter Punkt... müsste man auch machen :/

Wenn du Bedenken wegen der mehrfachen SQL-Anfragen hast, könnte man das evtl auch per UNION in eine einzige vereinen. Würde das ganze aber wahrscheinlich wesentlicher komplizierter machen, da dann viel mehr Logik direkt in DbLog rein müsste.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 20 April 2015, 22:24:28
wenn es einfach und transparent sein soll muss es denn dblog mit sqlite und mysql sowie für filelog gleichermaßen funktionieren.

wenn du das hin bekommst ohne das langsamer und überkompliziert wird versuch es.

dann würde ich es aber eher direkt in dblog und filelog oder svg einbauen und für diesen fall ganz ohne
logoroxy arbeiten.

mit einem attribut global oder pro plot eingeschaltet wäre das die einfachste variante für die anwender.

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: vbs am 20 April 2015, 23:02:23
Hm, naja, ich denke mal, dann bin ich raus... Klingt natürlich gut, aber ich fürchte, mit so einer Hochglanz-Lösung werde ich leider nicht dienen können.  :-[
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 20 April 2015, 23:04:21
nicht so schnell aufgeben. das macht es doch nicht komplizierter...
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 22 April 2015, 15:49:27
mit den letzten WeekdayTimer und Heating_Control update sollte es keine probleme mit logProxy mehr geben.

die werte für die neuen tage 7 und 8 (wochenende und wochentags) werden auch automatisch richtig mit angezeigt.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: igami am 14 Mai 2015, 21:46:31
Zitat von: klausw am 18 November 2014, 13:26:09
Mir ist noch eine Kleinigkeit aufgefallen.
Wenn am aktuellen Tag noch kein Ereignis aufgetreten ist, dann wird die Linie trotz predict bis zum Tagesende durchgezogen.

Gibt es hierfür mittlerweile ein Lösung?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 15 Mai 2015, 15:28:59
sorry. das ist untergegangen.

mein entwicklung rechner ist gerade zur reparatur.

hast du eine plotdefinition und ein log file mit dem das reproduzierbar ist?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: igami am 16 Mai 2015, 13:05:11
Hallo andre,

hier mein .gplot file:
SVG_21Flur_1.gplot

# Created by FHEM/98_SVG.pm, 2015-05-14 20:41:25
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '2.1:Flur'
set ytics
set y2tics
set grid
set ylabel "oE"
set y2label "state"
set yrange [0:200]
set y2range [-5:105]

#logProxy DbLog:DbLog,predict,extend=24*60*60:HM_29F65B:brightness
#logProxy DbLog:DbLog:HM_29F65B:state:::$val=$val=~"motion"?50:0
#logProxy DbLog:DbLog,predict,extend=4*7*24*60*60:HM_24C9DA:state:::$val=$val=~"open"?100:0
#logProxy DbLog:DbLog,predict,extend=4*7*24*60*60:di_psc_2.1Flur:state:::$val=$val=~"present"?100:$val=~"absent"?0:50
#logProxy DbLog:DbLog,predict,extend=4*7*24*60*60:HM_24074C:state:::$val=$val=~"on"?100:0

plot "<IN>" using 1:2 axes x1y1 title 'Helligkeit <L1> oE' ls l6fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Bewegung' ls l1 lw 1 with points,\
     "<IN>" using 1:2 axes x1y2 title 'Tür <L3>' ls l6 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Bewohner <L4>' ls l1fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Beleuchtung <L5>' ls l3 lw 1 with steps


Eine log file habe ich leider nicht, da ich nur DbLog verwende, es sollte aber auch mit einem Dummy funktionieren. Problem ist immer dann, wenn ich hier morgens mal ins Plot gucke bevor die Tür das erste mal geöffnet wurde, die linie geht dann bis zum Ende durch, obwohl ja mit predict nur bis zum aktuellen Wert gehen sollte.

grüße
igami
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: DerFrickler am 09 Juni 2015, 23:47:19
Hallo zusammen,

besteht hier auch die Möglichkeit einen Bereich horizontal zu kennzeichnen? Z.B. einen Bereich innerhalb dessen die Luftfeuchtigkeit optimal ist?

Im Grunde währe das so etwas wie
ConstY:<value>[,<from>[,<to>]]
nur dass from und to sich nicht auf die x-Achse beziehen, sondern einen Bereich auf der y-Achse einschliessen.

Gruß!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 09 Juni 2015, 23:55:46
@igami: ich bin leider noch nicht dazu gekommen. habe immer noch ein hardware problem.

@DerFrickler:ich bin nicht ganz sicher was du meinst. du kannst mit zwei ConstY linien einen horizontalen streifen zeigen. du kannst ihn nur nicht einfärben. wenn du ein bisschen bastelst kannst du mit Func ein geschlossenes gefülltes rechteck zeichnen.


gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: DerFrickler am 10 Juni 2015, 00:36:04
Zitat von: justme1968 am 09 Juni 2015, 23:55:46
@DerFrickler:ich bin nicht ganz sicher was du meinst. du kannst mit zwei ConstY linien einen horizontalen streifen zeigen. du kannst ihn nur nicht einfärben. wenn du ein bisschen bastelst kannst du mit Func ein geschlossenes gefülltes rechteck zeichnen.

ja, dieses eingefärbte Rechteck meinte ich, hatte es halt nur als Wertebereich bezeichnet.

Gruß!
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 10 Juni 2015, 11:44:28
ab morgen gibt es eine logProxy_values2Plot funktion mit der es einfach möglich so etwas zu machen.

#logProxy Func:logProxy_values2Plot([[$from,19],[$to,19],[$to,21],[$from,21]])

das komplette beispiel ist im wiki: http://www.fhemwiki.de/wiki/LogProxy#Einf.C3.BCgen_von_Zonen (http://www.fhemwiki.de/wiki/LogProxy#Einf.C3.BCgen_von_Zonen)

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: DerFrickler am 10 Juni 2015, 14:13:24
Perfekt!
Titel: HM-SEC-RHS WindowRec steht im Logfile
Beitrag von: daschauher am 03 August 2015, 21:17:06
Hallo Zusammen,

in einem Logfile logge ich die Zustände meiner Fenstersensoren mit, damit ich sie in einem Plot darstellen kann.
Soweit so gut. Seit ich ein bischen rumgebastellt habe und meine Fenstersensoren (5 Stück im Problemraum) mit einem einzigen Wandthermostat gepeert habe, damit z.B. im Winter beim öffnen eines Fensters die Solltemperatur automatisch runter gestellt wird, funktioniert einwandfrei, seitdem habe ich im Logfile folgende Einträge:
2015-08-03_15:12:20 EG_Kontakt_Tuere_mitte open
2015-08-03_15:12:20 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:open

Die erste Zeile ist in Ordnung und auch so gewollt, aber die zweite Zeile stört ungemein. Bei einer Logproxy abfrage wie folgend, führt die zweite Zeile zu einer Fehldarstellung.
#MyLogProxy FileLog:Fenster_FileLog,predict:3:EG_Kontakt_Tuere_mitte.*::$fld[2]=~"closed"?16:17
habe auch schon versucht das ganze abzufangen mit einer erweiterten abfrage wie:
#MyLogProxy FileLog:Fenster_FileLog,predict:3:EG_Kontakt_Tuere_mitte.*::$fld[2]=~"closed"?16:$fld[2]=~"open"?17:$fld[2]=~"tilted"?17:0
aber so funktioniert das leider nicht.

Hat jemand eine idee was ich hier machen kann?
oder warum überhaupt dieses "EG_Temp_WZ_WindowRec" im Log steht wenn meine definition so aussieht:
define Fenster_FileLog FileLog ./log/Fenster-%Y-%m.log EG_Kontakt_Tuere_mitte:(closed|open|tilted)|EG_Kontakt_Tuere_rechts:(closed|open|tilted)|EG_Kontakt_Tuere_links:(closed|open|tilted)|EG_Kontakt_Fenster_links:(closed|open|tilted)|EG_Kontakt_Fenster_rechts:(closed|open|tilted)
so wie es aussieht kommt das WindowRec auch nur bei dem Kontakt mit dem namen "EG_Kontakt_Tuere_mitte", aber nicht bei den anderen 4 Stück.

tut mir leid, aber ich weiß nicht weiter, bin um jeden tipp dankbar

gruss
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 04 August 2015, 10:40:26
das liegt am filelog-modul. dort gibt es ja 2 methoden eine regex zu bauen. entweder 1. "device:reading" oder 2. eine echte regex auf das reale event. bei komplexeren regex, so wie bei dir, habe ich auch manchmal seltsame ergebnisse, wenn ich beide methoden "mische". seitdem ich konsequent die 2. methode nutze, funktioniert es eigentlich immer.

also mach mal aus dem doppelpunkt im filelog def einen einfachen punkt (für das reale leerzeichen), denn ein doppelpunkt gibt es im event nicht.

gruss frank
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 04 August 2015, 10:44:32
das liegt nicht am logProxy modul sondern an der art wie fhem die column-spec zeile parsed. es wird an jedem : gesplittet. d.h. der : darf ausser zum trennen der column-spec komponenten nirgendwo auftauchen.

wie frank geschrieben hat kannst du einen . verwenden oder falls das mal nicht reicht geht auch \x3a anstelle des :

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 04 August 2015, 18:35:18
Hallo und vielen Dank gleich mal für die schnelle Hilfe und gute Erklärung, hört sich soweit alles logisch an.

Habe es sofort ausprobiert, aber irgendwie ändert sich nicht viel. Vermutlich habe ich etwas falsch verstanden :)
Wenn ich die Änderung im def vom filelog mach, dürfte es doch dort eigentlich gar nicht mehr gelogt werden.
Das tut es aber noch.
Hier ist nochmal meine geänderte komplette def:
define Fenster_FileLog FileLog ./log/Fenster-%Y-%m.log OG_Kontakt_Ki_Sud.(closed|open|tilted)|OG_Kontakt_Ki_Nord.(closed|open|tilted)|OG_Kontakt_SZ.(closed|open|tilted)|EG_Kontakt_WC.(closed|open|tilted)|EG_Kontakt_Tuere_mitte.(closed|open|tilted)|EG_Kontakt_Tuere_rechts.(closed|open|tilted)|EG_Kontakt_Tuere_links.(closed|open|tilted)|EG_Kontakt_Fenster_links.(closed|open|tilted)|EG_Kontakt_Fenster_rechts.(closed|open|tilted)|OG_Kontakt_Flur.(closed|open|tilted)|XX_Reserve_Kontakt.(closed|open|tilted)
attr Fenster_FileLog room Logfile

im Logfile selber steht dann immer noch:
2015-08-04_18:00:40 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_links:tilted
2015-08-04_18:00:41 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_links:tilted
2015-08-04_18:00:54 EG_Kontakt_Tuere_links closed
2015-08-04_18:00:54 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_links:closed
2015-08-04_18:00:54 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_links:closed
2015-08-04_18:03:53 EG_Kontakt_Tuere_links closed
2015-08-04_18:06:42 EG_Kontakt_Tuere_mitte closed
2015-08-04_18:06:42 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:closed
2015-08-04_18:07:04 EG_Kontakt_Tuere_mitte open
2015-08-04_18:07:04 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:open
2015-08-04_18:07:24 EG_Kontakt_Tuere_mitte closed
2015-08-04_18:07:24 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:closed
2015-08-04_18:08:00 EG_Kontakt_Tuere_mitte open
2015-08-04_18:08:00 EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:open

im event Monitor kommen folgende Meldungen an:
2015-08-04 18:07:24 CUL_HM EG_Kontakt_Tuere_mitte closed
2015-08-04 18:07:24 CUL_HM EG_Temp_WZ_WindowRec trigLast: EG_Kontakt_Tuere_mitte:closed
2015-08-04 18:07:24 CUL_HM EG_Temp_WZ_WindowRec trig_EG_Kontakt_Tuere_mitte: closed


Bedeutet ein . wirklich ein Leerzeichen oder ist es ein Platzhalter für irgendein Zeichen incl. dem Leerzeichen?
Und was sagt \x3a aus, ist das dann ein Platzhalter ausschließlich für ein Leerzeichen?

gruss
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 04 August 2015, 19:19:46
. ist platzhalter für irgendein zeichen. \x3a für einen :

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 04 August 2015, 19:50:03
ok, danke  :)
und was habe ich jetzt für möglichkeiten?
wenn ich den punkt ganz weglasse geht es auch nicht.

Ich könnte vielleicht im EG_Temp_WZ_WindowRec ein attribut mit event-on-change state setzen, da state immer unknown ist würde das trigLast keine event mehr auslösen und somit vielleicht keinen eintrag mehr im logfile machen. die frage die ich mir dabei stelle ist ob das noch im bereich einer schönen lösung ist, wenn man die events unterbindet.

was mir auf meiner wissenebene noch einfällt wäre ein dummy das über ein notify die logeinträge schreibt, wobei sich mir auch hier die frage stellt ob es nicht nur die umgehung des problems anhand mangelnden wissens meinerseits ist und es eine viel simplere lösung gibt.

als dritten lösungsansatz, der auch nicht funktioniert hat, habe ich versucht die zeile im gplot zu verändern.also aus der if else eine if elseif else abfrage versucht zu machen. hier wurde aus dieser zeile:
#MyLogProxy FileLog:Fenster_FileLog,predict:3:EG_Kontakt_Tuere_mitte.*::$fld[2]=~"closed"?16:17
diese:
#MyLogProxy FileLog:Fenster_FileLog,predict:3:EG_Kontakt_Tuere_mitte.*::$fld[2]=~"closed"?16:$fld[2]=~"open"?17:$fld[2]=~"tilted"?17:0

in welche richtung würdet ihr gehen um zum ziel zu kommen?

gruss markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: frank am 04 August 2015, 20:11:20
ich würde im filelog mal probieren "[\s]" statt dem punkt. in der hoffnung, dass es ein leerzeichen beschreibt. vielleicht kann man auch vor jedem devicenamen das anfangzeichen "^" setzen. dann sollten die triggerdaten auch verschwinden, falls fhem es schluckt.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: daschauher am 04 August 2015, 20:36:04
coole sache...es geht...vielen vielen dank!!

mit "[\s]" ging nicht viel bis gar nichts, aber "^" funktioniert top. dann muss ich jetzt quasi hoffen dass sich irgendwann nicht mal was in fhem ändert und es dann nicht mehr funktioniert. ich lass mich mal überraschen...

danke frank und auch andre

grüsse
markus
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Bartimaus am 11 September 2015, 10:42:47
Zitat von: justme1968 am 09 November 2014, 21:40:01
ein kurzes update zwischendurch: ich denke/hoffe das ich nächste woche eine version so weit habe bei der die werte die rechts und links über den plotbereich hinaus gehen sauber abgeschnitten werden und der plotabriss dann ohne addLog sauber vermieden werden kann.

bis dahin noch eine kurze spielerei mit der idee von hier: http://forum.fhem.de/index.php/topic,23912.0.html (http://forum.fhem.de/index.php/topic,23912.0.html) zum plotten der sonnenauf- und -untergangszeit. aber ohne zu loggen sondern 'live' berechnet.

dahinter steckt eine logProxy_Func2Plot funktion der man beliebige andere funktionen übergeben kann die dann wiederholt für die einzelnen punkte in einem plot aufgerufen wird. die anzahl der aufrufe ist konfigurierbar und hängt im default fall vom zoomfaktor ab. d.h. bei einem jahres- und monatsplot wird der wert täglich bestimmt, bei wochen- und tagesplot stündlich, usw.

die relevante teil der plot definition sieht dann so aus:

#logProxy Func:logProxy_Func2Plot($from,$to,'{hms2dec(sunrise_abs_dat($sec))}')
#logProxy Func:logProxy_Func2Plot($from,$to,'{hms2dec(sunset_abs_dat($sec))}')
                                                             
plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l2 lw 1 with steps,\
plot "<IN>" using 1:2 axes x1y2 title 'Somnnenuntergang' ls l0 lw 1 with steps

gruss
  andre

edit: die aktuelle Version ist im wiki beschrieben: http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten (http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten)

Danke, tolle Sache. Habe ich jetzt auch so hinbekommen, bis auf das "Label". Könntest Du mir hierzu nen Tip geben ?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 11 September 2015, 10:43:55
was genau geht denn nicht?

schau in die aktuelle fhem.cfg.demo. da ist das beispiel komplett mit drin.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Bartimaus am 11 September 2015, 11:27:01
Du hast hier in dem Beispiel die Überschrift mit dem frühesten Sonnenaufgang nebst Datum sowie Sonnenuntergang definiert.
Da brauche ich nen Tip wie ich das Attribut "Label" befülle.

Mit fhem.cfg.demo weiss ich grad nicht genau was Du meinst. Noch nie von gehört...
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 22 Oktober 2015, 12:41:18
Hallo Andre,

ich habe gerade mit der Polardarstellung vom logProxy etwas rumgespielt.
Ziel ist es die Ventilstellungen meiner Räume darzustellen (s. angehängtes Bild). Damit die Grafik gut aussieht, möchte ich aber nur die Räume dargestellt bekommen, die maxValveSetting > 0 haben.

Der erste Versuch

#lp Polar::[map{ReadingsVal($_,"maxValveSetting",0)}devspec2array(".*.MAX.Room:FILTER=maxValveSetting>0")]

ist fehlgeschlagen mit

2015.10.22 11:38:05 1: lp: [map{ReadingsVal($_,"maxValveSetting",0)}devspec2array(".*.MAX.Room: Can't find string terminator '"' anywhere before EOF at (eval 124331) line 1.

Ich nehme an, dass der Doppelpunkt vor FILTER an dieser Stelle nicht erlaubt ist.(korrekt?)
Also habe ich das devspec2array in eine kleine sub ausgelagert:


sub activeRooms(){
  return devspec2array(".*.MAX.Room:FILTER=maxValveSetting>0");
}

und das gplot-File entsprechend angepasst:


#lp Polar::[map{ReadingsVal($_,"maxValveSetting",0)}activeRooms()]


Jetzt habe ich nur noch zwei Probleme:
1. Falls das device Array leer ist, weil alle Ventile geschlossen sind, verabschiedet sich fhem mit

2015.10.22 11:54:37 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/98_logProxy.pm line 1053.
2015.10.22 11:54:37 3: stacktrace:
2015.10.22 11:54:37 3:     main::__ANON__                      called by ./FHEM/98_logProxy.pm (1053)
2015.10.22 11:54:37 3:     main::logProxy_Get                  called by fhem.pl (3085)
2015.10.22 11:54:37 3:     main::CallFn                        called by fhem.pl (1600)
2015.10.22 11:54:37 3:     main::CommandGet                    called by fhem.pl (1051)
2015.10.22 11:54:37 3:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2086)
2015.10.22 11:54:37 3:     main::FW_fC                         called by ./FHEM/98_SVG.pm (1147)
2015.10.22 11:54:37 3:     main::SVG_getData                   called by ./FHEM/98_SVG.pm (1115)
2015.10.22 11:54:37 3:     main::SVG_doShowLog                 called by ./FHEM/98_SVG.pm (991)
2015.10.22 11:54:37 3:     main::SVG_showLog                   called by ./FHEM/01_FHEMWEB.pm (671)
2015.10.22 11:54:37 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (436)
2015.10.22 11:54:37 3:     main::FW_Read                       called by fhem.pl (3085)
2015.10.22 11:54:37 3:     main::CallFn                        called by fhem.pl (651)
Illegal division by zero at ./FHEM/98_logProxy.pm line 1063.

Hier habe das Problem zur Zeit mit folgendem Patch gelöst:

--- FHEM/98_logProxy.pm (revision 9585)
+++ FHEM/98_logProxy.pm (working copy)
@@ -1050,6 +1050,7 @@
       next if( $values && ref($values) ne "ARRAY" );

       $segments = scalar @{$values} if( !$segments );
+      next if( !$segments );
       my $isText = $values && @{$values}[0] !~ m/^[.\d+-]*$/;

       $axis = 1 if( $isText );

D.h. sobald das Array leer ist, bleibt auch der Plot leer. Vielleicht gibt es aber auch eine schönere Lösung.

2. Das Grid ist zur Zeit wohl nur für Temperaturwerte vorgesehen (Wertebereich 0-30).
Für den Plot unten habe ich den Wertebereich hart geändert. Vielleicht fällt dir eine elegante Lösung ein, wie man den Wertebereich von außen setzen kann.

Gruß,
Gero
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag 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?
2015-09-25_12:56:44 0
2015-09-25_13:02:47 0
2015-09-26_13:55:58 0
2015-09-27_09:39:24 0
2015-09-27_09:45:21 0
2015-09-27_14:12:08 0
2015-09-27_18:16:48 0
2015-09-27_18:21:52 0
2015-09-27_18:25:17 0
2015-09-28_15:11:36 0
2015-09-29_15:11:36 0
2015-10-01_15:11:38 35.397
2015-10-02_16:11:36 35.397
2015-10-03_16:11:36 35.397
2015-10-04_16:11:36 35.397
2015-10-05_16:11:36 35.397
2015-10-05_20:55:18 35.397
2015-10-06_20:55:18 35.397
2015-10-07_20:55:19 35.397
2015-10-08_20:55:19 35.397
2015-10-09_20:55:19 35.397
2015-10-10_20:55:19 35.397
2015-10-11_11:09:44 35.397
2015-10-12_11:09:44 35.397
2015-10-13_11:09:44 35.397
2015-10-13_20:19:16 35.397
2015-10-13_20:28:37 35.397
2015-10-14_20:28:38 35.397
2015-10-15_20:21:30 35.397
2015-10-16_20:21:30 35.397
2015-10-17_20:21:30 35.397
2015-10-18_20:21:30 35.397
2015-10-19_19:56:50 35.397
2015-10-20_19:56:50 35.397
2015-10-21_19:15:51 35.397
2015-10-22_19:15:51 35.397
2015-10-23_19:15:51 35.397
2015-10-24_20:15:51 35.397
2015-10-25_19:15:52 35.397
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 03 November 2015, 10:31:29
Ich kann den Fehler bestätigen.
Das -1m scheint als Anfang einer regexp geparst zu werden.

Vermutlich reicht es in der Funktion logProxy_shiftTime folgende Zeile
if( $offset =~ m/((-)?\d)*m/ ) {

auf
if( "$offset" =~ m/((-)?\d)*m/ ) {

abzuändern.

Vielleicht sieht Andre hier nochmal rein.

Gruß,
Gero
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 03 November 2015, 11:05:52
das problem ist vermutliche ein anderes. je nach perl version werden die internen $X variablen des macht durch das folgende split zurück gesetzt. zumindest hatte ich das schon mal an anderer stelle.

bitte ändert den block mal so ab:  if( $offset =~ m/((-)?\d)*m/ ) {
    my $diff = $1;
    my @t = split("[-_:]", $time);
    $time = mktime($t[5],$t[4],$t[3],$t[2],$t[1]-1+$diff,$t[0]-1900,0,0,-1);;
  } else {         
    $time = SVG_time_to_sec($time);
    $time += $offset;
  }                 


geht es dann ?

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gima84 am 05 November 2015, 19:29:23
Hi, funktioniert leider beides nicht.

Soll ich nen logfile mit verbose=5 beim SVG erzeugen? Brauchst du noch andere Daten?

gruß martin
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 05 November 2015, 19:33:07
bitte bau mal das folgende an die gleiche stelle ein und schau was im log steht.

gruss
  andre

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;
  }                 
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gima84 am 06 November 2015, 09:46:57
Mein Vorgehen:
1. logproxy.pm ändern.
2. shutdown restart
3. alle Plots aufrufen
4. tail -f -n 0 fhem-2015-11.log > logproxy.txt
5. spezifischen Plot aufrufen
6. Reload Webseite
7. tail -f abgebrochen

Anbei das Ergebnis.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gandy am 10 November 2015, 21:35:39
Hallo,

ich suche nach einer Möglichkeit, mit FHEM Bordmitteln einen Plot-Bereich zwischen zwei Datenreihen einzufärben - im Endresultat möchte ich eine Darstellung wie im angefügten plot-7b anstelle von plot7a. Möglicherweise bietet logProxy hier einen Ansatz, nur die Details zur Umsetzung sind mir noch nicht ganz klar.

Der zu füllende Bereich wird nach oben und unten von zwei Datenreihen A und B abgegrenzt. In Anlehnung an das Beispiel im Wiki

#logProxy Func:logProxy_values2Plot([[$from,19],[$to,19],[$to,21],[$from,21]])

sollte es möglich sein, eine Funktion zu schreiben, die ausgehend von den Datenreihen A und B eine neue Datenreihe generiert, die einen geschlossenen Linienzug darstellt. Dazu genügt es im wesentlichen, die Reihenfolge der Punkte in B umzukehren und an A anzuhängen.

Die Frage ist, wie A und B an die Funktion übergeben werden können. Ein möglicher Ansatz könnte sein, die ursprünglichen Specs

#FileLog_HM_0A0000 4:HM_0A0000.duct_far_temperature_in\x3a::
#FileLog_HM_0A0000 4:HM_0A0000.duct_far_temperature_out\x3a::

wiederzuverwerten, etwa in der Form

#logProxy Func:area_plot($from,$to,'FileLog_HM_0A0000 4:HM_0A0000.duct_far_temperature_in\x3a::','FileLog_HM_0A0000 4:HM_0A0000.duct_far_temperature_out\x3a::')


Sollte das Leerzeichen in den Strings ein Problem sein, könnte es auch durch '|' oder ':' ersetzt werden. Die Idee ist aber, möglichst alle vorhanden logProxy Optionen nutzen zu können, wie extend, predict, offset, etc

Die zentrale Frage hier ist, wie die zu schreibende area_plot-Funktion aus den Strings an die passenden Daten kommt. Gibt es in logProxy eine Hilfsfunktion, mit der das einfach zu bewerkstelligen ist, und wie muss ich sie aufrufen?

Danke schonmal für's in die richtige Richtung deuten,
Andy.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gandy am 11 November 2015, 12:26:29
Ich denke ich habe die Lösung gefunden, zumindest komme ich aus meiner Funktion an die beiden Datenreihen ran und kann sie in der richtigen Reihenfolge wieder zusammensetzen, um die gewünschte Fläche plotten zu können. Allerdings muss ich momentan die Funktion wie folgt angeben:


#myLogProxy Func:area_plot('FileLog|FL_Wetter,expand=1000|4|temperature|10|','FileLog|FL_Wetter,expand=1000|4|humidity|50|','myLogProxy',$from,$to)


Die '|' sind nötig, weil sonst ein Fehler gemeldet wird, dass nach "area_plot('FileLog" kein schließendes "'" mehr gefunden wird. Das wiederum liegt daran, dass die ganze column_spec mit ":" als Trennzeichen gesplittet wird, was den String zerreisst.

Andre, wäre es denkbar, die betreffende Stelle in logProxy so abzuändern, dass eine Angabe

#myLogProxy Func:area_plot('FileLog:FL_Wetter,expand=1000:4:temperature:10:','FileLog:FL_Wetter,expand=1000:4:humidity:50:','myLogProxy',$from,$to)

möglich ist? Ich kann mich auch gern an einem Patch versuchen..

Danke,
Andy.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 11 November 2015, 15:12:17
@gima84: kannst du bitte das log noch mal mit gesetztem stacktrace attribut erzeugen. meine log zeilen tauchen scheinbar garnecht erst auf.

@handy: sorry. hab dein posting eben erst gesehen.

das problem  mit den : ist das die in der column_spec zeile von schon als treuer zwischen den einzelnen spalten verwendet werden und in unterschiedlichen modulen ein split auf : erfolgt und : eigentlich nicht weiter erlaubt ist.

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.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 11 November 2015, 15:51:39
Hallo Andre,

wenn du Zeit hast, kannst du dir bitte mal meinen Post weiter oben ansehen:
http://forum.fhem.de/index.php/topic,26529.msg348177.html#msg348177

Vielleicht ist er untergegangen.

Gruß,
Gero
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 11 November 2015, 16:41:04
@gero: ja. ein : ist in der zeile eigentlich nicht erlaubt. siehe oben.

in der angehängten version müsste das aber gehen. da ist auch dein patch drinnen und es gibt eine neue option isolines für den polar plot. also z.b. so:#lp Polar:isolines=10|30|60|70|80|90|100:[map{ReadingsVal($_,"maxValveSetting",0)}activeRooms()]

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gandy am 11 November 2015, 17:20:22
Zitat von: justme1968 am 11 November 2015, 15:12:17
@handy: sorry. hab dein posting eben erst gesehen.

das problem  mit den : ist das die in der column_spec zeile von schon als treuer zwischen den einzelnen spalten verwendet werden und in unterschiedlichen modulen ein split auf : erfolgt und : eigentlich nicht weiter erlaubt ist.

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.

Kein Problem, hab die Lösung gefunden :-) Aber danke für den fld Vorschlag, funktioniert perfekt. Bitte gerne einchecken.

Meine Funktion sieht jetzt so aus:

sub area_plot($$$$$)
{
  my ($spec1,$spec2,$lpn,$from,$to) = @_;
  return undef if( !defined($defs{$lpn}) );
  my $lph = $defs{$lpn};

  my $data1 = logProxy_Get($lph,$lpn,'CURRENT','-',$from,$to,$spec1);
  my $data2 = logProxy_Get($lph,$lpn,'CURRENT','-',$from,$to,$spec2);

  my @dvec1 = split("\n", $data1 );
  my @dvec2 = split("\n", $data2 );

  pop(@dvec1); # get rid of last line, data may not be interrupted w/ comments
  pop(@dvec2);

  return join("\n", @dvec1) . "\n" . join("\n", reverse(@dvec2)) . "\n$dvec1[0]\n";
}


Ein wenig unklar ist mir, ob CURRENT an der Stelle richtig ist, wie siehst du das?

Grüße,
Andy.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 11 November 2015, 17:37:20
logproxy verwendet den $inf parameter nicht sondern verwendet bei aufruf der entsprechenden dblog oder filelog routine automatisch HISTORY bzw. CURRENT. d.h. es ist egal was du hier übergibst.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 11 November 2015, 19:48:13
Zitat von: justme1968 am 11 November 2015, 16:41:04
@gero: ja. ein : ist in der zeile eigentlich nicht erlaubt. siehe oben.

in der angehängten version müsste das aber gehen. da ist auch dein patch drinnen und es gibt eine neue option isolines für den polar plot. also z.b. so:#lp Polar:isolines=10|30|60|70|80|90|100:[map{ReadingsVal($_,"maxValveSetting",0)}activeRooms()]

gruss
  andre
Vielen Dank. Ich werde es Morgen testen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gero am 12 November 2015, 08:02:21
Hallo Andre,

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


Gruß,
Gero
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gima84 am 12 November 2015, 19:38:27
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
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gima84 am 15 November 2015, 11:41:41
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.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gima84 am 28 November 2015, 15:57:19
Hi, leider waren meine weiteren Versuche nicht erfolgreich die verantwortliche Stelle zu finden. Hat jemand vielleicht noch eine Idee? Danke und Gruß
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: gandy am 20 Dezember 2015, 14:41:05
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.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: rtv am 02 Februar 2016, 15:24:02
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?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: HotteFred am 01 April 2016, 10:09:24
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
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Andi291 am 03 April 2016, 10:07:53
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?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: FhemPiUser am 03 April 2016, 20:33:39
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"...
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Andi291 am 03 April 2016, 21:56:21
Ein Traum, der Fehler ist weg. Extended wird immer noch nicht, aber das schau ich mir noch an.

Danke und Grüße, Andi
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: TWART016 am 16 November 2017, 00:22:35
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?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: automatisierer am 16 November 2017, 07:00:51
Klingt komisch....

vielleicht mal ein paar Details, was genau änderst du? Und was genau passiert dann in dem anderen Device?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: TWART016 am 16 November 2017, 17:51:54
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).
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: automatisierer am 16 November 2017, 17:57:24
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.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: TWART016 am 16 November 2017, 18:10:12
Stimmt, da stehen die gleichen Daten.

Kann ich das nachträglich ändern?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Frank_Huber am 16 November 2017, 18:11:43
mindestens bei einem von beiden müsste es einen Hinweis mit Button "copyGPLOTfile" geben.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: automatisierer am 16 November 2017, 19:33:24
das ist kein Hinweisbutton, das ist ein set Befehl und der ist bei jedem SVG Device vorhanden
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 16 Februar 2018, 23:07:47
Hallo,
ich versuche nun seit 3h meine Filelogs auf logProxy umzustellen.
Warum: ich möchte meine SVG-Daten um 24h zurück verschieben.

Ich schaffe es aber leider nicht umzustellen.

was habe ich gemacht:
define lp logProxy
mein Logfile:
#FileLog Stunde, Tag, Woche, Monat, Jahr
define CN.Gasverbrauch.File FileLog ./log/CN.Gasverbrauch-%Y.log CN.Gasverbrauch:app\w*(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*
attr CN.Gasverbrauch.File room Gaszähler


aus diesem SVG:
#SVG Auswertung Jahr
define SVG_CN.Gasverbrauch.FileYear_1 SVG CN.Gasverbrauch.File:SVG_CN.Gasverbrauch.FileYear_1:CURRENT
attr SVG_CN.Gasverbrauch.FileYear_1 fixedrange year
attr SVG_CN.Gasverbrauch.FileYear_1 room Gaszähler


habe ich das gemacht:
#SVG Auswertung Jahr
define SVG_CN.Gasverbrauch.FileYear_1 SVG lp:SVG_CN.Gasverbrauch.FileYear_1:CURRENT
attr SVG_CN.Gasverbrauch.FileYear_1 fixedrange year
attr SVG_CN.Gasverbrauch.FileYear_1 room Gaszähler


mein gplot sieht noch so aus
# Created by FHEM/98_SVG.pm, 2018-02-16 22:59:44
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Jahres-Gasverbrauch in m³'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "m³"
set xrange [2014:2019]

#CN.Gasverbrauch.File 4:CN.Gasverbrauch.appCountsPerYear\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'Jahreverbrauch' ls l0fill lw 2 with bars



wo habe ich da noch die Fehler, wie müsste ich (falls falsch) meinen Filelog, SVG ändern.
Ich kann den SVG auch ganz löschen und nochmal neu anlegen.
Nur weis ich nicht woran meine Fehler liegen.

Danke euch
Gruß Thomas
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 16 Februar 2018, 23:24:21
im gplot file muss aus #CN.Gasverbrauch.File 4:CN.Gasverbrauch.appCountsPerYear\x3a:: noch #logProxy FileLog:CN.Gasverbrauch.File:4:CN.Gasverbrauch.appCountsPerYear\x3a::werden.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 17 Februar 2018, 12:15:05
Zitat von: justme1968 am 16 Februar 2018, 23:24:21
im gplot file muss aus #CN.Gasverbrauch.File 4:CN.Gasverbrauch.appCountsPerYear\x3a:: noch #logProxy FileLog:CN.Gasverbrauch.File:4:CN.Gasverbrauch.appCountsPerYear\x3a::werden.


Vielen Dank, nun bin ich schon weiter.

Leider wird mir der SVG noch nicht angezeigt.
Es wird aus dem Log nur ein Eintrag ins SVG übernommen.
Inhalt Logfile:
2016-01-01_00:00:19 CN.Gasverbrauch appCountsPerYear: 3000
2017-01-01_00:00:19 CN.Gasverbrauch appCountsPerYear: 2126.5
2018-01-01_00:00:19 CN.Gasverbrauch appCountsPerYear: 2074.5


wobei 2016 und 2017 händisch ins Log geschrieben wurde. FHEM wurde nachher neu gestartet.

Im SVG wird aber nur der Log vom 2018-01-01 ausgegeben.
Bei einem klick auf "Show preprocessed input" im SVG kommt folgendes

get lp CURRENT INT 2018-01-01_00:00:00 2019-01-01_00:00:01 FileLog:CN.Gasverbrauch.File.Jahr:4:CN.Gasverbrauch.appCountsPerYear\x3a::

2018-01-01_00:00:19 2074.5
#4:CN.Gasverbrauch.appCountsPerYear\x3a::


meine .gplot hat folgenden Inhalt:
# Created by FHEM/98_SVG.pm, 2018-02-17 12:09:51
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Jahres-Gasverbrauch in m³'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "m³"
set xrange [2015:2019]

#lp FileLog:CN.Gasverbrauch.File.Jahr:4:CN.Gasverbrauch.appCountsPerYear\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'Jahreverbrauch' ls l0fill lw 2 with bars



vielleicht liegt es auch am Attribute:
fixedrange year
Muss ich da evtl etwas anderes angeben?

wo könnte das noch der Fehler liegen?
Danke euch
Gruß Thomas

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Februar 2018, 12:29:21
du hast doch nur einen wert pro jahr. was genau möchtest du denn tun?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 17 Februar 2018, 12:30:36
Ich glaube ich habe den Fehler gefunden:

Man muss scheinbar beim Attribut "fixedrange" Zahlen eintragen
fixedrange 2016-01-01 2019-01-01

Richtig? oder geht es für dies Ausgabe von mehren Jahren noch anders?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 17 Februar 2018, 12:32:38
Zitat von: justme1968 am 17 Februar 2018, 12:29:21
du hast doch nur einen wert pro jahr. was genau möchtest du denn tun?

Hallo justme1968,

ich möchte meinen Gasverbrauch der gesamten Jahre als Visualisierung als Balkendiagramm(Bars) darstellen.
Also ein SVG mit allen alten und aktuellen Jahreswerten
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Februar 2018, 13:30:55
du musst den plot erst mal so konfigurieren dad mehr als ein jahr angezeigt wird und dann in der logProxy zeile die werte per offset auf das richtige jahr schieben
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 17 Februar 2018, 13:58:22
Zitat von: justme1968 am 17 Februar 2018, 13:30:55
du musst den plot erst mal so konfigurieren dad mehr als ein jahr angezeigt wird und dann in der logProxy zeile die werte per offset auf das richtige jahr schieben

ja Danke das habe ich mit attr "fixedrange" "2014-01-01 2019-01-01" geschafft  :)

bekommt man aber die Balken irgendwie breiter oder die Jahre näher zusammen geschoben?
Auf meinem Bild im Anhang sind es schmale Balken und dazwischen viel Luft.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 Februar 2018, 14:50:06
mach den plot kleiner, nimm mehr jahre, oder schau dir ibars statt bars an. das ist alles nicht logproxy spezifisch.

oder du schreibst dir eine kleine routine die die datenpunkte so aufbereitet wie du möchtest und stellst diese dann mit logproxy dar.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: H33K3R am 18 Februar 2018, 20:51:49
Schönen Guten Abend,

ich bin mir nicht sicher ob ich hier richtig bin auch bin ich mir nicht sicher ob logProxy für mein Problem schon eine Lösung bietet.

Ich würde gerne ein SVG Plot bauen der ein Dropdown Menü beinhaltet wo ich dann ein userReadings des SVG Plot mit ändern kann.
Also je nach ausgewählten Eintrag im Dropdown ein anderes "setreading <SVGPLOTNAME> <userReadings> <value>" ausführt.

Beispiel:
Ich habe eine Klima Filelog wo ich maximal alle 5 Minuten die aktuellen Werte meiner "Klima" Sensoren speichere.
Wenn ich nun für einen bestimmten Raum einen SVG Plot möchte Tippe ich oben in die "command" Zeile im Web
"setreading SVG_KlimaLogfile room Buero" oder "setreading SVG_KlimaLogfile room Kueche" oder
"setreading SVG_KlimaLogfile room Bad" wobei mein userReadings "room" heißt und mein SVG Plot "SVG_KlimaLogfile"
somit kann ich den SVG Plot für jeden Raum umstellen und er zeigt mir dann die Daten des Raumes an.

ich hätte es nur gerne etwas komfortabler über ein Dropdown oder ähnliches.

Ich hab mal ein mockup angehangen.

Vielen Dank
H33K3R

falls sowas schon irgendwie einfach umzusetzen ist würde ich mich über einen Tipp sehr freuen.

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 19 Februar 2018, 08:32:12
nein. logProxy hilf dir dabei nicht.

aber schau dir mal readingsGroup und dort das beispiel für dynamische inhalte im wiki an.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 27 Februar 2018, 11:44:19
Hi, ich möchte gern mein SVG mit logProxy noch optimieren.

Ich habe zu meinen historischen Log-Daten, die per "bars" angezeigt werden noch ein Balkendiagramm mit den aktuellen Werten aus dem Reading hinzugefügt.
Laut dieser Anleitung im Wiki:
Darstellung des aktuell aufgelaufenen Wertes, zusätzlich zu historischen Monats- oder Wochendaten aus einem Log

Die zugrunde liegende Idee hierbei ist, zusätzlich zu den geloggten historischen Werten den bis jetzt für den aktuellen Zeitraum aufgelaufenen Wert, der noch nicht geloggt ist, direkt aus dem entsprechenden Reading zu holen und ebenfalls zu plotten.

Hierzu wird in einer sub ähnlich der folgenden geprüft, ob der Timestamp des entsprechen Readings innerhalb des gerade dargestellten Bereiches liegt und dieses dann zum Plotten zurückgegeben:

sub
current2Plot($$$$)
{
  my($from,$to,$device,$reading) = @_;
  my $fromsec = SVG_time_to_sec($from);
  my $tosec   = SVG_time_to_sec($to);

  my $ret = "";

  my $rt = ReadingsTimestamp( $device, $reading, undef );
  return $ret if( !$rt );

  my $sec = time_str2num($rt);
  return $ret if ( $sec < $fromsec || $sec > $tosec );

  my $val = ReadingsVal( $device, $reading, undef );

  my @t = localtime($sec);
  my $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]);

  $ret .= "$timestamp $val\n";
  $ret .= "#plotCurrent: $device:$reading\n";

  return $ret;
}

Je nach Zoomfaktor und Intervall der Darstellung muss das Ganze eventuell angepasst werden, indem nur mit Tages-Genauigkeit verglichen und angezeigt wird.

Zusätzlich zur #logProxy Zeile, die die historischen Daten plottet, wird jetzt noch eine Zeile für den aktuellen Wert und die zugehörige Plot-Anweisung ins gplot File eingebaut:

#logProxy Func:current2Plot($from,$to,"meinDevice","meinReading")
plot "<IN>" using 1:2 axes x1y2 title 'Aktuell' ls l0fill lw 0.5 with bars


Nun wird wie auf dem Bild zu erkennen das Balkendiagramm(blau) nicht direkt auf dem gesamten Tag angezeigt sondern der Endpunkt des Diagramms liegt bei der aktuellen Zeit.
Wie könnte ich das Diagramm auf den genauen Tag verschieben(weiter nach rechts)?
Mit offset scheint es bei "Func" nicht zu funktionieren und das würde wohl auch nichts bringen, da das Diagramm ja nach Uhrzeit immer weiter schiebt.
Evtl. könnte man durch das verändern der "sub Routine" aus den gesamten Zeiten
2018-02-27_11:41:57 8.31
die Uhrzeit rausfiltern das nur noch das Datum genutzt wird!? Leider weis ich nicht wie.

Habt ihr eine Idee für mich?

LG Thomas
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Depechem am 27 Februar 2018, 12:36:33
so ich habe es hinbekommen:

aus:my $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]);

habe ich:
  my $timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $t[5]+1900, $t[4]+1, $t[3], "24", $t[1], $t[0]);
gemacht.

Kann man das so lassen oder könnte es da Probleme geben?
Angezeigt wird es auf alle Fälle richtig.

LG Thomas
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Diggewuff am 18 April 2018, 18:51:38
ich versuch das hier zum laufen zu bekommen.
ConstY:myFunc(AttrVal("FlowerSense","minLux",0))
aber irgendwie hänge ich fest hat jemand einen Hinweis?

edit haha erledigt myFunc() ist nur n Platzhalter
ConstY:AttrVal("FlowerSense","minLux",0)
so gehörts
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Diggewuff am 19 April 2018, 01:41:29
ConstY wird bei Logaritmischer skalierung nicht als horizontale Linie angezeigt.
siehe screenshot
gibt es einen trick wie ich das hin bekomme?
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Shadow3561 am 17 Juli 2018, 19:44:25
Moin,
ist es auch möglich mit dem Modul eine Heizkurve/Heizkennline zu erstellen?

Alle benötigten Readings (Forlauftemperatur, Neigung und Niveau) existieren in FHEM.

MfG

Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: funkner am 20 Oktober 2018, 20:58:41
Hallo,
ich wollte meine Log-Daten um 12Monate verschieben.
Dafür nutze ich die offset='12m' Funktionalität.
Dabei ist mir evtl. ein kleiner Fehler aufgefallen.
Ich habe die Modulzeile
  if( $offset =~ m/((-)?\d)*m/ ) {
folgendermaßen abgeändert.
  if( $offset =~ m/((-)?\d*)m/ ) {
Daraufhin wurde der offset > '9m' durchgeführt.

Bitte prüfen und evtl. Änderung übernehmen.
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 22 Oktober 2018, 09:17:56
danke. hab eine etwas andere version eingecheckt.

gruss
  andre
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: pschlaeppi am 12 August 2019, 13:20:13
Hallo,

Ich nutze den XY Plot um die Renigungsfahrt eines Roomba zu visualiseren.
Grundsätzlich fährt dieser nach Plan, fährt aber in der Regel mehrere Male
durch die verschiedenen Räume.
Dadurch ist es ohne Hervorhebung nicht möglich in dem Gewusel aus Linien
auf der Map zu erkennen wo er gerade feststeckt wenn er sich mal verheddert.
Ich möchte gerne die Letzte geplotete XY-Position hervorheben können um einen
Hinweis zu haben wo er steckt.
Zum beispiel indem an der der letzten Plot Position ein dicker Punkt dargestellt wird.

Gibt es eine Möglichkeit dieses zu realisieren?

Mit freundlichen Grüssen

Philipp
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: justme1968 am 17 August 2019, 21:17:54
ja.

du brauchst zwei plot zeilen. eine für deine fahrt und eine für den punkt am ende. analog zu dem beispiel hier: https://wiki.fhem.de/wiki/LogProxy#Punkt_ans_Ende_des_geplottenden_Bereiches_eines_anderen_Plots_setzen (https://wiki.fhem.de/wiki/LogProxy#Punkt_ans_Ende_des_geplottenden_Bereiches_eines_anderen_Plots_setzen)
Titel: Antw:logProxy modul zum manipulieren und ergänzen von SVG plots
Beitrag von: Tungsten am 23 September 2019, 09:57:47
Hallo Zusammen,

kann hier evtl jemand weiterhelfen?

https://forum.fhem.de/index.php/topic,103938.0.html

Danke Euch