logProxy modul zum manipulieren und ergänzen von SVG plots

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

Vorheriges Thema - Nächstes Thema

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher


Mr.Heat

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

justme1968

@daschauher: in dem oben verlinkten thread gibt es jetzt eine 98_SVG.pm bei dem das spinnennetzdiagramm wieder funktioniert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher


frank

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
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

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

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

frank

Zitatdauert aber noch ein bisschen.
danke, kein problem.

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

justme1968

#203
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

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

d.schoen

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
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

wkarl

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
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

d.schoen

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
FHEM 5.7 auf RasPi2
COC 868MHz, Jeelink Clone
Devices: IT, HomeMatic, LaCrosse, ENIGMA2, LG-TV, Thinkingcleaner (iRobot Roomba), LIFX Wifi-Bulbs
Helper: TelegramBot, Homebridge (Siri), Geofency

justme1968

noch nicht automatisch. ich überlege mir etwas.

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

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968