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

so sieht es super aus :)
sind aber statische Werte die sich nicht ändern oder?

gruß
markus

justme1968

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

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

justme1968

bitte klick mal im svg editor auf das 'show preprocessed input' und häng das ergebnis mal hier an.

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

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

daschauher

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

justme1968

ich habe den fehler gefunden. du hast hier: 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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

daschauher

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

daschauher

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

justme1968

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

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

daschauher

wow, da bin ich sprachlos :)

tausend dank für die kompetente hilfe und die tolle arbeit!!

daschauher

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

justme1968

das geht noch nicht. ist aber schon in planung.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

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

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

daschauher

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

justme1968

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

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

daschauher

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