logProxy modul zum manipulieren und ergänzen von SVG plots

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

Vorheriges Thema - Nächstes Thema

wkarl

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

wkarl

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

justme1968

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

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

frank

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

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

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

frank

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

wkarl

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

wkarl

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

frank

hallo walter,

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

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

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

wkarl

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

frank

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

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

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

frank

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

wkarl

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

wkarl

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