logProxy modul zum manipulieren und ergänzen von SVG plots

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

Vorheriges Thema - Nächstes Thema

daschauher

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

wkarl

Hallo Andre,

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

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

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

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

daschauher

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.

justme1968

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

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

frank

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

@frank: das geht über das SVG label attribut.

was möchtest du denn ganz genau machen?

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

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

frank

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.
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

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

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

justme1968

ich habe die version mit dem neuen scale2reading attribut eben eingecheckt. ist morgen im update enthalten.

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

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

wkarl

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

justme1968

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

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

d.schoen

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!
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

wkarl

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

wkarl

so funktioniert es nun
#logProxy Func:logProxy_xy2Plot([[ReadingsVal("<SPEC1>","measured-temp",0),ReadingsVal("<SPEC1>","humidity",0)]])


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