(Gelöst) Daten aus DBLog plotten

Begonnen von Puschel74, 09 Dezember 2013, 09:16:24

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo,

ich mal wieder  8)

Mit dem Modul SYSMON logge ich mir die Daten meines RasPi in die Datenbank.
Nun wollte ich mir gestern einen Plot bauen der die load des RasPi im Raster 1 Minute, 5 Minuten und 15 Minuten plottet.
Die Daten sind auch vorhanden nur weiß ich nicht wie ich da am besten dran komme da alle 3 Werte in einer Reihe stehen.

Der Plot für 1 Minute funktioniert nur die anderen beiden Werte werden nicht geplottet.
Im Screenshot mal der Auszug aus der Datenbank und wie der Plot zur Zeit aussieht.

Und hier meine gplot-Datei.
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 grid xtics y2tics

set ylabel "Last"
set y2label "Last"

#DbLog <SPEC1>:loadavg::

plot \
     "< awk '/load avg:/ {print $1, $4}' <IN>" \
   using 1:2 ls l0fill axes x1y1 title '1 min' lw 0 with lines \
   "< awk '/load avg5:/ {print $1, $4}' <IN>" \
   using 1:2 ls l1 axes x1y1 title '5 min' lw 2 with lines \
  "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l2 axes x1y1 title '15 min' lw 3 with lines


Ich vermute das ich noch 2 #DBLog <SPEC1>:loadavg:: benötige die mir die Daten passend extrahieren.
Kann damit aber auch total falsch liegen und es geht noch viel einfacher.

Wenn sich also mal jemand erbarmen könnte (mal wieder) und mir einen kleinen Schupps in die richtige Richtung geben würde wäre ich dankbar.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

z.b. so:#DbLog <SPEC1>:loadavg:::$val =~ s/([\d.].*) [\d.].* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* ([\d.].*) [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* [\d.].* ([\d.].)*/$1/eg


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

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

Puschel74

Hallo,

und danke für die Hilfe.
Hast du die Codes irgendwo abgespeichert oder schüttelst du sowas einfach so aus dem Ärmel  :o

Aber zurück zum Thema.

Das:
#DbLog <SPEC1>:loadavg:::$val =~ s/([\d.].*) [\d.].* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* ([\d.].*) [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* [\d.].* ([\d.].)*/$1/eg

ich vermute in der letzten Zeile am Schluss sollte es so aussehen ([\d.].*) - hab ich aber auch versucht.
Sowie das:
#DbLog <SPEC1>:loadavg:::$val =~ s/(\d.).* [\d.].* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* (\d.).* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* [\d.].* (\d.).*/$1/eg

sowie das:
#DbLog <SPEC1>:loadavg:::$val =~ s/([\d.]).* [\d.].* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* ([\d.]).* [\d.].*/$1/eg
#DbLog <SPEC1>:loadavg:::$val =~ s/[\d.].* [\d.].* ([\d.]).*/$1/eg

brachte leider keinen Erfolg.

Wenn ich nur ansatzweise verstünde was die ganzen Klammern machen würde ich ja selbst weiter probieren.
Ich werd mal Onkel Google bemühen - ich vermute es geht hier um Perl-Expressions?

Grüße und danke mal wieder für deine Geduld  ;D
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

na wenn ich es abgespeichert hätte würde es ja immer gehen :)

da ist beim eingeben und kopieren was verrutsch.

der zweite fehler war das keine leerzeichen drin sein dürfen. sonst kommt dblog beim parsen durcheinander. also so:
#DbLog <SPEC1>:loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg
#DbLog <SPEC1>:loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg
#DbLog <SPEC1>:loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/eg


eine ganz nette einführung zu den reges findest du hier:
http://www.troubleshooters.com/codecorn/littperl/perlreg.htm

die idee oben ist den eingrabe string durch den teil zu ersetzten der gerade relevant ist. dazu wird der erst mal in die drei teile zerlegt. jeder teil kann aus zahlen (\d) und dem Punkt bestehen. die [] geben an welche zeichen erlaubt sind. jeweils mit * dahinter. d.h. beliebig oft. dazwischen kommen dann jeweils leerzeichen. weil die nicht erlaubt sind ein '.'. der bedeutete ausserhalb der [] aber nicht punkt sondern ein beliebiges zeichen. statt dessen könnte man auch \s für whitespace verwenden. die () merkt sich das was in den klammern steht um es später wieder zu verwenden -> beim ersetzen. also wird in jeder zeile jeweils wird der komplette string durch das was in der ersten runden klammer steht ersetzt.

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

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

Puschel74

Hallo,

aha  :o

Danke für die Erklärung und den Link.
Meine Lesezeichensammlung nimmt schön langsam Gestalt an  8)

Nu hat es funktioniert.
Jetzt kann ich mich mit der Darstellung anfangen zu spielen damit man auch was erkennt.

Vielen Dank nochmal.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

#5
Hallo,

soviel zum Thema gelöst.  ::)

Anhand der Links wollte ich mich nun mal dran machen und das
Zitat2013-11-21_00:00:27 CUM_DAY: 13.695 CUM: 38482.875 COST: 0.74
2013-11-22_00:03:32 CUM_DAY: 14.505 CUM: 38497.380 COST: 0.78
2013-11-23_00:01:38 CUM_DAY: 10.710 CUM: 38508.090 COST: 0.58
#Gas:cum_day:::
in einen Plot werfen der mir den täglichen Verbrauch CUM_DAY aufzeichnet.

Das ist dabei heraus gekommen und ... funktioniert natürlich nicht  ::)
#DbLog <SPEC1>:cum_day::$val=~s/[\D_:]*.([\d.]*).[\D:]*.[\d.]*.[\D:]*.[\d.]*/$1/eg

Ausgehend von der Erklärung über die [] und () und . und * und \d war ich der Meinung das ich mit \D (für nicht-Zahlen) mit _ und : im Namen beliebig oft anfangen müsste usw. usw.   :o

Könnte mir hier nochmal jemand auf die Sprünge helfen bitte.
Perl regexp sind doch nicht so einfach zum zusammen bauen - zumindest für mich

Danke mal wieder - das nächste Mal geb ich einen aus  ;D

Grüße

Edith: Was ein : so alles ausmacht  ::)
#DbLog <SPEC1>:cum_day:::$val=~s/[\D.*]*.([\d.]*).[\D.]*.[\d.]*.[\D.]*.[\d.]*/$1/eg
und klappt.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

das sollte auch noch ein bischen einfacher gehen :)

#DbLog <SPEC1>:cum_day:::$val=~s/^CUM_DAY..([\d.]*)/$1/eg

alles was nach dem teil kommt der dich interessiert brauchst du ja nicht mehr matchen. und den anfang kannst du in diesem fall ganz genau hinschreiben.

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

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

Puschel74

#7
Hallo,

wobei aber dann 2 unterschiedliche Plots dabei rauskommen  :o

Screenshot 1 ist die umständliche Variante (mit der ich schon froh bin das ich die überhaupt hinbekommen habe).
Screenshot 2 ist die "vereinfachte" Variante (von der ich schon froh bin das du mir immer wieder hilfst  :D ).

Grüße

Edith: Wobei deine Variante die richtige ist - wie nicht anders zu erwarten  ;D
Nu frag ich mich aber wo ich den Fehler habe  :o
Edith2: Sieht so aus als ob ich die erste Ziffer abschneide  :(
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

ich tippe mal das liegt daran das deine version die erste stelle des wertes noch abschneidet :)

[\D_:]* matched alles bis zur ersten ziffer (das ginge übrigens auch einfacher als \D* weil _ und : auch keine ziffern sind, bzw als korrekt als [\w:]*) dann kommt ein . der matched die erste ziffer dann erst kommt deine () mit dem was dann zurück gegeben wird.

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

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

Puschel74

Hallo,

jep

Zitatich tippe mal das liegt daran das deine version die erste stelle des wertes noch abschneidet
Da hast du haarscharf ins schwarze getippt.

Ich habs nun mal so versucht:
#DbLog <SPEC1>:cum_day:::$val=~s/[\D*]*([\d.]*).[\D.]*.[\d.]*.[\D.]*.[\d.]*/$1/eg
#DbLog <SPEC2>:cum_day:::$val=~s/[\D*]*([\d.]*).[\D.]*.[\d.]*.[\D.]*.[\d.]*/$1/eg

(Die erste Variante mit \D_: hatte ich wieder verworfen als ich die Fehlermeldungen im FHEM-LogFile gesehen habe).

Das "unschöne" an deiner Variante ist das im Titel nicht nur die einzelnen CUM_DAY angezeigt werden sondern immer noch der gesamte String.
Aber ich vermute mal das ich da wieder einen copy&paste Fehler hatte.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

nö. ich war mal wieder zu schnell :)
#DbLog <SPEC1>:cum_day:::$val=~s/^CUM_DAY..([\d.]*).*/$1/eg

das ist ja die suchen und ersetzen variante. da muss man natürlich auch bis zum ende matchen um alles zu ersetzen.

wenn du nur mit m/.../ ein teil rausholen willst reicht es nicht bis zum ende zu suchen. etwa so:#DbLog <SPEC1>:cum_day:::$val=($val=~m/^CUM_DAY..([\d.]*)/)[0];

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

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

Puschel74

Hallo,

wenn das

Zitat#DbLog <SPEC1>:cum_day:::$val=~s/^CUM_DAY..([\d.]*).*/$1/eg

nicht geklappt hääte hätt mich das auch gewundert  ::)

Wen du jetzt noch einen Tipp hast wie ich in der sqlite3-DB einen Wert zu einem bestimmten Datum "verändern" kann wäre das die Krönung.

Problem - siehe Screenshot.
Der EM1000WZ und -GZ haben mir da wohl "etwas" falsche Werte geliefert - die würde ich an diesem Datum gerne änder damit der Rest des Plots "sichtbar" wird.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hallo Puschel74,

mich würde Deine Plots für SYSMON mit DbLog interessieren. Wenn Du nichts dagegen hast, würde ich diese zu dem Modul selbst in GitHub einchecken, das wird bestimmt auch andere Nutzer erfreuen ;)

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

justme1968

#13
mit select * from history where device='xxx'; bekommst du alle einträge aufgelistet, mit delete from history where timestamp='xxx'; und xxx durch einen timestamp aus der ersten liste kannst du eine zeile löschen.

oder mit delete from history where value>'xxx';

du solltest fhem dabei anhalten. sqlite mag keine gleichzeitigen zugriffe.

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

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

Puschel74

Hallo,

Zitatselect * from history where device='xxx';
kenn ich schon - das listet mir aber ALLES von Anbeginn der Aufzeichnung auf.

In meinen Fall laufen da jede Menge Daten durch - ich bin leider nicht so der Datenbank-Crack.
Ich hab schon gesehen das man bei select auch mehr <Bedingungen> angegeben kann.

Das schöne ist nur das das über die FHEM-Befehlszeile auch klappt - mit <get mydbLog ________>

Ich möcht jetzt nur nicht einen bestimmten timestamp löschen sondern manipulieren - wenn das geht.
Klar geht das - wenn man weiß wie  ;D

Und da bist du wieder mal gefordert  ;D

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

Hallo,

@hexenmeister
Die Plotfiles kannst du gerne haben - wenn ich helfen kann  8)
Die DEF häng ich dann auch mit dran.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

wenn du verbose auf 4 oder 5 stellst siehst du beim get die SQL commandos.

den bereich kannst du mit

... and timestamp >'xxx' and tiemstanp <'xxx' ;

einschränken. wenn es nur ein ausreißer ist geht auch etwas in der art:

update history set value='neu' where value='alt';

am besten nach dem runterfahren erst mal eine kopie der db machen.

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

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

hexenmeister

@Puschel74

Hallo!

ZitatDie Plotfiles kannst du gerne haben - wenn ich helfen kann  8)

Cool ;), danke. Hängst Du die Dateien hier an, oder wie komme ich daran am besten?

Gruß,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

ZitatHängst Du die Dateien hier an, oder wie komme ich daran am besten?
Wollte ich eigentlich nicht aber da es im Beitrag ja auch um die Darstellung von Plots aus DBLog geht werf ich sie dir doch mal hier dran.
Für eth0 und ram bin ich noch am basteln.

Ob du den Plot für alle Daten auch mit aufnimmst bleibt dir überlassen  ;D

Da FHEM unter  der GPLv2 steht stehen diese Dateien natürlich auch zur freien Verfügung und dürfen durch jeden geändert und/oder angepasst werden  8)

Exemplarisch die Definition für Load:
define wl_sysmon_load SVG myDbLog:loaddb:CURRENT
attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_load plotfunction sysmon
attr wl_sysmon_load room RaspberryPi


Wie man sieht macht der Plot für die Taktfrequenz bei mir nicht viel Sinn  ;D

Undn icht zu vergessen:
Nochmal ein riesengrosses DANKESCHÖN für die Hilfe (und die Geduld mit mir) an andre

Ich werd mal schauen ob ich eine Kopie meiner DB anlege oder ob ich die "falschen" Werte einfach nicht beachte.

Noch eine kurze Frage am Rande:
Die "Manipulation" der DB muss aber in sqlite3 gemacht werden oder kann ich das auch über die FHEM-Befehlszeile machen?
Daten für Plots schau ich mir lieber über die FHEM-Befehlszeile an.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

die kopie ist nur temporär zur sicherheit. nicht das plötzlich zu viel gelöscht oder geändert wird.

du musst es per sqlite cmd line machen. deshalb sollte fhem nicht gleichzeitig laufen.

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

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

hexenmeister

Vielen Dank, werde heute aben auf GitHub pusten  ;D

ZitatOb du den Plot für alle Daten auch mit aufnimmst bleibt dir überlassen  ;D
Klar doch, wer nicht will, man kann ihn  auch dann _nicht_ nutzen, wenn er da ist   ;)

Grße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

Hi!

Zitatdu musst es per sqlite cmd line machen. deshalb sollte fhem nicht gleichzeitig laufen.

Da wäre doch ein Modul hilfreich, der die SQL-Befehlzeile in FEHM bietet. Villeicht gibt es so etwas schon?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

justme1968

nein. gibt es nicht. ein extra modul funktioniert auch nicht weil z.b. sqlite nicht mit mehreren schreibenden verbindungen klar kommt. also wenn dann muss es ins dblog modul direkt mit rein.

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

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

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

und mal wieder - jetz geb ich dann aber wirklich bald mal einen aus  8)

Ich hab das
Zitat2013-12-11_00:00:58 RX: 0.04 MB, TX: 0.06 MB, Total: 0.10 MB
in der DB stehen und habe nun versucht das so
#DbLog <SPEC1>:eth0_diff:::$val=~s/^RX..([\d.]*).*/$1/eg
#DbLog <SPEC1>:eth0_diff:::$val=~s/^TX..([\d.]*).*/$1/eg
#DbLog <SPEC1>:eth0_diff:::$val=~s/^Total..([\d.]*).*/$1/eg

zu teilen.
RX wird mir auch richtig geplottet aber TX und Total sind 0

Nu dacht ich mir ich kann das Beispiel mit CUM_DAY abwandeln aber wieder mal zuviel gedacht  :o
andre bitte Hilfe  :-\

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

bei TX und Total muss das ^ am anfang durch ein .* ersetzt werden. die beiden stehen ja nicht am anfang.

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

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

Puschel74

#26
Hallo,

Zitatmuss das ^ am anfang durch ein .* ersetzt werden.

War mir vollkommen klar.  ::)
Nichts anderes hatte ich erwartet.  ;D
:o :o :o :o

Jetzt wo du das sagst macht das Sinn - vielen Dank mal wieder.

Grüße

Anbei noch die beiden GPlot-Files für eth0 und ram
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hi Puschel74!

ZitatAnbei noch die beiden GPlot-Files für eth0 und ram

Vielen Dank, die Dateien sind umbenannt und bei GitHub hochgeladen.
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/SMNetworkEth0DB.gplot
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/SMRAMDB.gplot

Die DBLog-Sammlung wird langsam komplett ;)

VG

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

ZitatDie DBLog-Sammlung wird langsam komplett

Was fehlt noch?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hi!

ZitatWas fehlt noch?

eigentlich nur die Plots für die Belegung der Flash-Karte und des USB-Stricks

Gruß,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

wenn du mir einen Auszug aus der DB gibst kann andre das ja anpassen  8)

Nein Blödsinn.
Mit dem Wissen das mir andre beigebracht hat sollte ich das schaffen.

Also einfach mit get myDbLog - - 2013-12-11 2013-12-12 sysmon:cpu_freq (Namen und Parameter bitte anpassen) in die FHEM-Befehlszeile und eine oder 2 Rückgabezeilen daraus posten.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hallo,

würde ich ja gerne helfen, habe sogar mein DbLog wieder reaktiviert.

Leider liefert mir die Anweisung
get myDbLog - - 2013-12-14 2013-12-15 sysmon:cpu_freq
nur folgendens
#sysmon:cpu_freq:::

Dabei sind die Daten in der DB vorhanden:
mysql> select * from current where device = 'sysmon' and reading = 'cpu_freq';
+---------------------+--------+--------+---------------+----------+-------+------+
| TIMESTAMP           | DEVICE | TYPE   | EVENT         | READING  | VALUE | UNIT |
+---------------------+--------+--------+---------------+----------+-------+------+
| 2013-12-15 15:45:44 | sysmon | SYSMON | cpu_freq: 700 | cpu_freq | 700   |      |
+---------------------+--------+--------+---------------+----------+-------+------+
1 row in set (0.60 sec)


mysql> select * from history where device = 'sysmon' and reading = 'cpu_freq';
+---------------------+--------+--------+------------------+----------+--------+------+
| TIMESTAMP           | DEVICE | TYPE   | EVENT            | READING  | VALUE  | UNIT |
+---------------------+--------+--------+------------------+----------+--------+------+
| 2013-12-15 15:43:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
| 2013-12-15 15:44:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
| 2013-12-15 15:45:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
| 2013-12-15 15:46:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
| 2013-12-15 15:47:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
| 2013-12-15 15:48:44 | sysmon | SYSMON | cpu_freq: 700    | cpu_freq | 700    |      |
+---------------------+--------+--------+------------------+----------+--------+------+



Was mache ich falsch?

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

ZitatmyDbLog

heisst es bei dir auch myDbLog?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Zitatheisst es bei dir auch myDbLog?

jo,

sonst schimpft er anders.
Beispiel:

get DbLog - - 2013-12-14 2013-12-15 sysmon:cpu_freq

Please define DbLog first


:(
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

eigenartig.

Da kann ich dir dann leider nicht weiter helfen.

Ich bekomm damit
get myDbLog - - 2013-12-11 2013-12-12 sysmon:cpu_freq
die Readings in dieser Form geliefert:
Zitat2013-12-11_00:00:58 700
2013-12-11_00:01:58 700
2013-12-11_00:02:58 700
2013-12-11_00:03:58 700
2013-12-11_00:04:58 700
2013-12-11_00:05:58 700
2013-12-11_00:06:58 700
2013-12-11_00:07:58 700
2013-12-11_00:08:58 700
2013-12-11_00:09:58 700
2013-12-11_00:10:58 700
2013-12-11_00:11:58 700
2013-12-11_00:12:58 700

Aber egal.
Du kannst mir die Werte für die fehlenden GPlot auch so posten - ich muss nur wissen wie sich die Readings zusammen setzen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hi!

Reicht die Ausgabe aus Log?

2013-11-30_23:58:55 sysmon cpu_freq: 700
2013-11-30_23:58:55 sysmon ~ /: Total: 7404 MB, Used: 3630 MB, 52 %, Available: 3448 MB
2013-11-30_23:58:55 sysmon eth0_diff: RX: 3.02 MB, TX: 0.06 MB, Total: 3.08 MB
2013-11-30_23:58:55 sysmon cpu_temp_avg: 49.0
2013-11-30_23:58:55 sysmon cpu_temp: 48.69
2013-11-30_23:58:55 sysmon loadavg: 0.09 0.09 0.13
2013-11-30_23:58:55 sysmon ~ /media/usb1: Total: 30942 MB, Used: 6886 MB, 23 %, Available: 24057 MB
2013-11-30_23:58:55 sysmon ram: Total: 485 MB, Used: 129 MB, 26.60 %, Free: 356 MB


Der Wert für Root-Partition ist demnach:
Total: 7404 MB, Used: 3630 MB, 52 %, Available: 3448 MB

Für FileLog habe schon ich Plots hier:
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/mySMFS_Root.gplot
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/mySMFS_usb1.gplot

Die Abfrage mus aber doch auf Deinem System auch funktionieren:

get DbLog - - 2013-12-14 2013-12-15 sysmon:~ /
Oder kommt DbLog mit solchen Namen nicht klar?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Puschel74

Hallo,

Zitatget myDbLog - - 2013-12-14 2013-12-15 sysmon:~ /
klappt bei mir nicht.
Zitat

#sysmon:~:::

bekomme ich dann als Antwort.

Ich hab mir mal die Readings von sysmon angeschaut:
Die Readings sind da nur komme ich mit ~ nicht dran - oder ich mach wieder was falsch.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

hexenmeister

Hm. Möglicherweise habe ich einen unglücklichen Namen gewählt (mit ~ und Leerzeichen). Wer könnte klären, ob dies zulässig ist?
Ich könnte sie auch umbenennen, aber mir fällte keine gute Namenskonvention ein. Ich würde gerne (auch programmtechnisch) die FileSystem-Readings unterscheiden können.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Krallos

Hallo,


ich habe da ein ähnliches Problem.


2014-01-08_23:59:01 1W_S0Zaehler_Gas day: D08  Gas:   6.1 m^3 Gasm:   0.0 m^3  B: 109.0 cts Bm:   0.0 cts


Ich würde gerne aus dem DBLog den Gas-Tageswert plotten. Aber irgendwie komme ich mit den Ausdrücken noch nicht klar.


Ich habe mal probiert:


#DbLog 1W_S0Zaehler_Gas:day:::$val=($val=~m/.*Gas..([\d.]*)/)[0];

aber es wird nichts angezeigt. Kann mir da wer den Entscheidenen Input geben?


Gruß Christian
Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

Puschel74

Hallo,

ich hab ja leider immer noch zuwenig Ahnung mit den regexp aber so
Zitat#DbLog 1W_S0Zaehler_Gas:day:::$val=($val=~m/.*Gas..([\d.]*)/)[0];
dürfte das auch nicht klappen.

Die Zeile in meiner powerdbday.gplot sieht so aus:
#DbLog <SPEC1>:cum_day:::$val=~s/^CUM_DAY..([\d.]*).*/$1/eg
Vielleicht kannst du darauf ja aufbauen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Krallos

Hallo Puschel,


leider nicht.

Ich hatte zwischenzeitlich schon mal weiter experimentiert .. leider ohne Ergebnis.

Dein Code hatte ich in ganz ähnlicher Weise. Ich weiß halt nicht, wie er D08 interpretiert

Aktuell habe ich
Zitat#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas..([\d.]*).*/$1/eg

Das .* vor Gas, weil es ja nicht das Erste ist.


Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

Puschel74

#41
Hallo,

Zitatweil es ja nicht das Erste ist.
Dann mal bitte den gesamten Beitrag hier durchlesen.

andre hat in einem Beitrag erklärt wie das funktioniert wenn ein Reading nicht das erste ist.

Grüße

Edith:
ZitatIch weiß halt nicht, wie er D08 interpretiert
Ist auch egal.
du willst nur das Reading aus der DB auswerten und plotten.
Wenn das so wie von dir gepostet in der DB steht kannst du den gewünschten Wert auch plotten lassen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Krallos

Hi,



2014-01-07_23:56:44 D07  Gas:   5.5 m^3 Gasm:   0.0 m^3  B: 109.0 cts Bm:   0.0 cts
2014-01-08_23:59:01 D08  Gas:   6.1 m^3 Gasm:   0.0 m^3  B: 109.0 cts Bm:   0.0 cts


habe ich eben direkt via FHEM

get myDbLog - - 2014-01-07 2014-01-09 1W_S0Zaehler_Gas:day

ausgelesen aus der Datenbank.

mein .gplot habe ich noch mal angefasst.

#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas..([\d.]*).*/$1/eg

es wird aber nix angezeigt .. irgendwie steig ich da nicht durch.


Ich hab diesen Thread schon hoch und runter gelesen, auch die verlinkte Seite, sonst hätte ich ja hier nicht gefragt :)
Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

justme1968

deine regex passt auf das wort Gas mit zwei beliebigen zeichen danach und dann der zahl.

wenn ich mir dein log ansehe gibt es ein mal Gas mit doppelpunkt und zwei leerzeichen und ein mal Gas mit m doppelpunkt und zwei leerzeichen. das passt beides nicht auf deine regex...

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

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

Puschel74

Hallo,

versuch mal
#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas...([\d.]*).*/$1/eg

nach Gas ... (3 Punkte).
Dein Auszug scheint zwischen Gas: und dem Wert 3 Leerzeichen zu haben.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Krallos

Puh .. schwere Geburt


er will

#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas:...([\d.]*).*/$1/eg

haben. Also den doppelpunkt nach Gas.

Danke Euch


Gruß Christian
Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

Puschel74

Hallo,

ZitatAlso den doppelpunkt nach Gas.
Oder einfach einen vierten .
Der Doppelpunkt ist auch einfach nur "irgendein Zeichen"  ;)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

oder :\s* für beliebig viele leerzeichen nach einem doppelpunkt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Puschel74

Zitatoder :\s* für beliebig viele leerzeichen nach einem doppelpunkt.
Hach du wieder  ;D
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ph1959de

... und wenn man, wie ich, mit RegEx nicht so fit ist, kann man sich notfalls auch von Tools wie http://regex101.com/#PCRE helfen lassen und das benötigte Pattern "zusammenbasteln".

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Krallos

#50
Zitat von: justme1968 am 09 Januar 2014, 16:50:36
oder :\s* für beliebig viele leerzeichen nach einem doppelpunkt.


Ohne Witz, das klappt nicht, er will tatsächlich den Doppelpunkt haben.

Oder \s* nach dem Doppelpunkt, das klappt.



Gruß Christian
Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

JoeALLb

Ich würde [^\d]*? nehmen, dann filtert er sicher alles vor den Zahlen heraus, das sollte auch minimal besser von der Performance sein ;-?
Gleichzeitig wird dieser Ausdruck fast "universell" einsetzbar.

Also:
#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas[^\d]*?([\d.]+).*/$1/eg
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Krallos

Zitat von: JoeALLb am 10 Januar 2014, 12:02:31
Ich würde [^\d]*? nehmen, dann filtert er sicher alles vor den Zahlen heraus, das sollte auch minimal besser von der Performance sein ;-?
Gleichzeitig wird dieser Ausdruck fast "universell" einsetzbar.

Also:
#DbLog 1W_S0Zaehler_Gas:day:::$val=~s/.*Gas[^\d]*?([\d.]+).*/$1/eg


Liefert mir dann nur noch den tagesaktuellen Wert, also sprich einen :(


Gruß Christian
Synology RackStation 814 - FHEM 5.6 - USB9097+ein paar DS18B20 und einen Dual-S0-Counter von eService-Online im Eigenbau.

Duz

Hallo Community,

weiss jemand, warum bei mir die 1 min load avg nicht geplottet wird?

Mit freundlichen Grüßen