FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Afterburner am 07 Dezember 2015, 14:15:52

Titel: Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 14:15:52
Servus,

ich bin gerade mit FHEM vom Windows Test PC auf nen PI2 umgezogen, Installation nach dieser Anleitung
http://www.meintechblog.de/2013/05/fhem-server-auf-dem-raspberry-pi-in-einer-stunde-einrichten/

Danach habe ich FHEM auf dem PI gestoppt und folgende Dateien vom Windows PC kopiert
fhem.cfg
callmoncache.txt
den log Ordner
www/gplot/SVG_..... (also alle von meinen selbst erstellten Plots)

danach dann
sudo chown fhem:dialout *
bei allen geänderten Verzeichnissen

reboot

FHEM läuft wie gesagt nur dauert die Erstellung von Plots bei MAX Thermostaten ewig

Beispiel gplot Datei

# Created by FHEM/98_SVG.pm, 2015-12-07 10:42:23
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 '<TL> <L1>'
set ytics
set y2tics ("100%" 100, "50%" 50, "0%" 0, "Auto" 20, "Manu" 10)
set grid ytics y2tics
set ylabel "Temperatur °C"
set y2label "Ventil / Mode"
set yrange [5:40]
set y2range [-0.2:110]

#FileLog_Heizung.Arbeitszimmer 4:Heizung.Arbeitszimmer.temperature\x3a::
#FileLog_Heizung.Arbeitszimmer 4:Heizung.Arbeitszimmer.valveposition\x3a::
#FileLog_Heizung.Arbeitszimmer 4:Heizung.Arbeitszimmer.mode\x3a:0:$fld[3]=~"auto"?20:1

plot "<IN>" using 1:2 axes x1y1 title 'Temperatur' ls l1fill lw 0.2 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Ventilstellung' ls l3 lw 3 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Mode' ls l0 lw 3 with lines


FRITZ DECT z.B. wird sofort erstellt

# Created by FHEM/98_SVG.pm, 2015-12-06 21:49:47
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 '<TL> <L1>'
set ytics
set y2tics
set grid
set ylabel "Power (KW)"
set y2label "Power (KW)"

#FileLog_FBDECT_16 4:FBDECT_16.*:0:

plot "<IN>" using 1:2 axes x1y2 notitle ls l0 lw 1 with lines


Die Systemlast geht nicht hoch, Load Average ist bei ca 0.4
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: rudolfkoenig am 07 Dezember 2015, 14:30:13
Sagt nur, dass ein PI2 langsamer ist als der Windows Rechner.

Workarounds:
- ins Logfile nur das notwendige reinschreiben (siehe FileLog regexp).
- wenn moeglich, mehrere Werte auf eine Zeile schreiben (userReadings bauen, und nur das loggen)
- bei der Anzeige mehrerer Plots auf eine Seite hilft "attr WEB plotfork"
- bei den alten PI gabs Linux-Distributionen ohne Hardware-Floating-Point Unterstuetzung. Mit ist deutlich besser.
- evtl. von FileLog auf DbLog umsteigen. Ich habe keine Vergleichswerte, d.h. wenn du das versuchst, unbedingt vorher/nachher Zeiten messen. Kann auch sein, dass es schlechter wird.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 14:48:51
Ist das echt so schlimm der Unterschied ? Im Logfile sind nur Daten von 3 Tagen drin


Zitat- bei der Anzeige mehrerer Plots auf eine Seite hilft "attr WEB plotfork"
Ok ich schau dazu mal ins Manual, aber es tritt auch auf wenn ich den Plot alleine aufrufe, also nicht in der Übersicht

Zitat- bei den alten PI gabs Linux-Distributionen ohne Hardware-Floating-Point Unterstuetzung. Mit ist deutlich besser.
Das kann ich Dir leider nicht beantworten, ist Debian 8.0 drauf, Linux 4.1.12.v7

Zitatevtl. von FileLog auf DbLog umsteigen. Ich habe keine Vergleichswerte, d.h. wenn du das versuchst, unbedingt vorher/nachher Zeiten messen. Kann auch sein, dass es schlechter wird.
ja das war auch gerade meine Idee gewesen, habe auch mal in ein Logfile geguckt, sind ca 53.000 Zeilen drin, da macht dann DB vermutlich mehr Sinn da man sich ja nur das raus holt was man braucht. Aber schneller als 30 Sekunden was die Übersicht mit den 6 Geräte momentan braucht wird es wohl schon sein.

EDIT: aber selbst der Badezimmerthermostat den ich erst heute Nacht angelegt habe und wo die Datei gerade mal 400 kb groß ist braucht ca 4-5 Sekunden
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 07 Dezember 2015, 14:57:13
Zitat von: Afterburner am 07 Dezember 2015, 14:48:51
Im Logfile sind nur Daten von 3 Tagen drin
...
sind ca 53.000 Zeilen drin, da macht dann DB vermutlich mehr Sinn
Vor allem überdenken welche Daten wie häufig geloggt werden müssen.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: franky08 am 07 Dezember 2015, 15:00:32
ZitatEDIT: aber selbst der Badezimmerthermostat den ich erst heute Nacht angelegt habe und wo die Datei gerade mal 400 kb groß ist braucht ca 4-5 Sekunden

Um Himmels Willen  :)
Was loggst du den alles? Am Besten mittels regex anpassen und nur die Daten loggen die du für die Plot´s auch brauchst.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 15:15:23
das packe ich dann mal in meine "google ToDo" mit rein da ich momentan noch nicht weiß wie das geht
bin jetzt erst mal beim googeln nach "Umstellung FileLog auf DB Log"
habe hier inzwischen schon Millionen Tabs offen und verliere langsam den Überblick :(
Und wegen jeder Kleinigkeit will ich hier auch nicht um Hilfe bitte

Btw das hier wird jede Minute geloggt
Zitat2015-12-07_13:12:15 Heizung.Badezimmer mode: auto
2015-12-07_13:12:15 Heizung.Badezimmer battery: ok
2015-12-07_13:12:15 Heizung.Badezimmer desiredTemperature: 19.0
2015-12-07_13:12:15 Heizung.Badezimmer temperature: 18.9
2015-12-07_13:12:15 Heizung.Badezimmer valveposition: 10
2015-12-07_13:12:15 Heizung.Badezimmer 19.0 °C
2015-12-07_13:12:15 Heizung.Badezimmer MAXLAN_initialized: 1
2015-12-07_13:12:15 Heizung.Badezimmer MAXLAN_error: 0
2015-12-07_13:12:15 Heizung.Badezimmer MAXLAN_errorInCommand:
2015-12-07_13:12:15 Heizung.Badezimmer MAXLAN_valid: 1
2015-12-07_13:12:15 Heizung.Badezimmer MAXLAN_isAnswer: 0

Im Plot nutze ich nur Temperature, Mode und Ventilstellung
das andere muss ich dann halt irgendwie raus filtern das es nicht geloggt wird, jetzt kümmre ich mich aber mal drum wie ich das mit der DB am besten mache

Hier steht es ja schon mal beschrieben
http://www.fhemwiki.de/wiki/SVG-Plots_von_FileLog_auf_DbLog_umstellen

Aber das verweist dann wieder auf den Db Artikel, da muss ich dann mal schauen das ich hier ne mysql-db auf dem Rechner bekomme, habe das zwar auch auf meinem Managed Server aber die Daten nach extern ins Internet Schicken macht vermutlich keinen Sinn, eine Baustelle macht die nächste auf ^^
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: franky08 am 07 Dezember 2015, 15:24:25
Da gibt es eine WIKI

http://www.fhemwiki.de/wiki/Neues_Charting_Frontend
ziemlich weit unten ist beschrieben wie man ein sqlite DB auf dem pi einrichtest, table für das charting frontend brauchst du nicht. Nur die 2 tables history und current.

ZitatCREATE TABLE `history` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
CREATE TABLE `current` (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));

VG
Frank
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: rudolfkoenig am 07 Dezember 2015, 15:28:23
Alternativ in der FileLog Detail-Asicht im "Regexp-Parts" Abschnitt die relevanten Events hinzufuegen und das alte "Regex-Part" entfernen. Weiterhin die Events nur alle 5-Minuten erzeugen, entweder mit MAX selbst, oder mit event-min-interval. Das reduziert die anfallende Datenmenge auf ca 5%, und die Zeit fuer die Erstellung auf geschaetzt 10%. Aber erst ab morgen, wenn FileLog/SVG nur die minimierte Datenmenge verarbeiten muss.

Ohne eine Reduzierung der Datenmenge wird auch DbLog nicht so viel helfen, weil mindestens die Haelfte der Zeit in der SVG-Modul verbracht wird.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 15:33:48
Jo thx, das steht auch hier
http://www.fhemwiki.de/wiki/DbLog#Datenbank

MySQL ist wenigstens was was ich noch kenne, hatte es nur noch nie auf Linux installiert

da kommt mir doch glatt ne Idee wie ich das Ganze mit den regex umgehe, ich lösche es im Nachhinein per cron wieder aus der DB raus mittels mysql und php :D

DELETE * FROM HISTORY WHERE TYPE = 'MAXLAN_isAnswer';

müsste da dann noch gucken was wo genau abgelegt wird

@rudolfkoenig
ich schau es mir gleich mal an, aber werde wohl trotzdem auf DB umsteigen schon weil ich da viel flexibler bin was den Zugriff angeht, also aus meiner Sicht gesehen der den Code von FHEM nicht kennt
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 07 Dezember 2015, 15:42:31
Ich weiß es nicht auf den RasPi, aber mySQL ist auf einem Linux-System sehr schnell installiert. Schreihe, wenn Du Hilfe brauchst ...
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 15:56:05
Ja war innerhalb von ner Minute drauf gewesen, jetzt habe ich mich gerade in die Regexp ecke verkrümelt um da durch zusteigen
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 16:05:07
Ist das jetzt so richtig wenn ich nur
- temperature
- mode
- valveposition
- groupid

groupid sollte sich normalerweise nicht ändern, tut sie aber bei wenn ich MAXLAN neu connecte mir aber das ist nen anderes Thema

Was mich jetzt dabei wundert ist die 1. Zeile, also die hier:
- Heizung.Arbeitszimmer|Heizung.Arbeitszimmer:groupid:.*   

da steht nur Heizung.Arbeitszimmer am Anfang, das kann ich auch nicht entfernen wenn ich rechts daneben auf dem Link klicke kommt nur
Cannot remove regexp part: not found

Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: rudolfkoenig am 07 Dezember 2015, 16:30:27
Ist wohl ein Bug. Solange nicht gefixt ist, bitte weiter unten auf DEF klicken, es per Hand entfernen, und dann auf modify.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 16:58:46
Also der Tipp mit dem Def ist ja mal Gold wert, da kann man ja alles auf einmal machen :)

EDIT: Logging läuft in der DB
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: frank am 07 Dezember 2015, 18:16:23
ZitatAlso der Tipp mit dem Def ist ja mal Gold wert, da kann man ja alles auf einmal machen
das funktioniert sogar bei jedem device.  :)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: franky08 am 07 Dezember 2015, 18:21:15
@frank
Ja,ja irgendwann wird das editieren der fhem.cfg hoffentlich aussterben  :) :) ;)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: frank am 07 Dezember 2015, 18:29:08
Zitat von: franky08 am 07 Dezember 2015, 18:21:15
@frank
Ja,ja irgendwann wird das editieren der fhem.cfg hoffentlich aussterben  :) :) ;)
ich hoffe nicht.  ;)

wenn links farbig markiert wären, zumindestens beim darkstyle ist das nicht der fall, würden sicherlich mehr user mal einen klick riskieren, denke ich.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 18:30:43
Das ist noch besser zu Wissen :)

Ich bin gerade dabei mal einen Datensatz einzuspielen wie hier beschrieben
http://forum.fhem.de/index.php/topic,14761.msg94678.html#msg94678

aber ich habe k.A. wie ich die CSV Speichern soll, also mit ; getrennt ?
Weil mit Leerzeichen hat es nicht funktioniert, da hatte ich dann mal eben 50.000 dummeinträge drin die ich mittels

DELETE FROM HISTORY WHERE DEVICE is NULL
wieder löschen konnten

Ich kenne das eigentlich nur so das das Format bei MySQL Backuos so war

'Wert1', 'Wert2', 'Wert3', ....

ist das hier auch so ?

OK

.separator ","

muss man in SQL Lite noch angeben dann klappt es, Daten sind importiert :)

Werden aber in dem testweise angelegten DB Plot nicht angezeigt, in der DB sind sie vorhanden
kann aber sein das einige doppelt vorhanden sind, sollte aber ja eigentlich nicht stören
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 07 Dezember 2015, 19:00:51
Hier noch der Screenshot dazu, die Daten sind in der DB,
(http://forum.fhem.de/index.php?action=dlattach;topic=45296.0;attach=41661;image)

angezeigt wird aber erst ab ca 17 Uhr
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: franky08 am 08 Dezember 2015, 12:24:21
Als Anregung aus dem Thread hier, hatte ich mal plotfork auf 1 gesetzt. Leider scheint plotfork mit DbLog auf sqlite immer noch Probleme zu haben, Schade.

2015.12.08 12:07:54 3: Connecting to database SQLite:dbname=/opt/fhem/fhem.db with user
2015.12.08 12:07:54 3: Connection to db SQLite:dbname=/opt/fhem/fhem.db established for pid 4382
2015.12.08 12:07:54 2: DbLog: Failed to insert new readings into database: DBD::SQLite::st execute failed: attempt to execute on inactive database handle at ./FHEM/93_DbLog.pm line 492.


Davon ist der Log seit gesetzten plotfork voll.

VG
Frank
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: BKSolo am 08 Dezember 2015, 14:22:35
Hallo, etwas spät aber trotzdem ein Kommentar zu
ZitatFHEM läuft wie gesagt nur dauert die Erstellung von Plots bei MAX Thermostaten ewig

Ich bin seit Anfang auf Raspberry und später auf Raspberry 2 und verwende das filelog für verschiedenste Devices u.a. auch FS und teilweise >250'000 Einträge.
Habe damit keine Probleme und in kurzer Zeit (< 2-3 Sekunden) sind zwei Plots mit den Tagesaktuellen Daten im Browser aufgebaut. Länger geht es wenn ich mehrere Tage anzeigen lasse.
Was ..ewig.. für "Afterburner" bedeutet, habe ich nicht gelesen.

Verfolge aber gespannt was über das Dblog und Plotting geschrieben wird.

Bruno
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 08 Dezember 2015, 14:59:56
Plots von 4 Thermostaten, 1 EcoTaster, 1 Fensterkontakt = 30 Sekunden, Plot eines Raumes war 5 Sekunden gewesen.
Bin jetzt heute Nacht auf MySQL umgestiegen und habe alles bis Mitternacht gelöscht, inzwischen merkt man schon das es wieder langsamer wird, ca 15 Sekunden für die Plots bei einem halben Tag an Daten.

Habe in der DB schon nen Index gesetzt für DEVICE und TIMESTAMP aber auch das hat nichts geholfen.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: rudolfkoenig am 08 Dezember 2015, 15:35:27
Womoeglich hatte ich mit meiner Bemerkung in Beitrag #7 gar nicht so unrecht :)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: BKSolo am 08 Dezember 2015, 15:36:03
Dann sagt mir aber meine Erfahrung mit meiner Installation, dass bei dir etwas anderes nicht gut läuft.
Mit deinen Daten sollte es innerhalb 2 Sekunden fertiggestellt sein.
Prüf mal die Micro-SD Karte - ich habe eine schnelle 32GB eingesetzt.
Hast du den Browser mit den Plots auf einem PC und bist mit IP verbunden mit dem Raspberry. Gibt es da mögliche "Bremser". 
Bruno
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 08 Dezember 2015, 15:46:24
@rudolfkoenig

geht das denn überhaupt mit der DB ?

@BKSolo
zum Anfang hatte ich es auf dem lokalen Browser mal getestet, danach dann halt nur noch remote
16 GB Class10 microSD-Karte SanDisk
ist drin, der PI war ein Komplettset von hier
http://www.pollin.de/shop/dt/ODMzNzkyOTk-/Bausaetze_Module/Entwicklerboards/Raspberry_Pi_2_mit_Touch_Display_Display_T_Box_16_GB_microSD_Karte.html
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: LuckyDay am 08 Dezember 2015, 16:10:38
nur mal so als Beispiel  Cubitruck und alte 70G Festplatte 2,5

bei mir dauert über FileLog mit 4 Temperatursensoren der Monat November in einem Raum 7 Sekunden
wobei nur jede Temperatur und Feuchtigkeit Änderung protokolliert wird und wie Rudi in Beitrag 1 angemerkt hat, als ein Datensatz gespeichert wird.
beim Plot 2 und 3 wird auch aus zwei Filelogdateien gelesen (Außentemp gelb) zusätzlich

ein datensatz sieht bei mir so aus

2015-12-08_14:21:39 og_Schlafzimmer T: 19.3 H: 64 D: 12.3
2015-12-08_14:26:00 og_Schlafzimmer T: 19.2 H: 64 D: 12.2
2015-12-08_14:39:03 og_Schlafzimmer T: 19.1 H: 64 D: 12.1
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: rudolfkoenig am 08 Dezember 2015, 16:16:40
Zitatgeht das denn überhaupt mit der DB ?
Weniger Daten reinschreiben? Ja, das geht sogar mit einer DB.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 08 Dezember 2015, 16:34:29
LOL das ist klar ^^
Ich meine an der angesprochenen Stelle im Filelog weil in der fhem.cfg ist ja das eingetragen
define logdb DbLog ./db.conf .*:.*     # logt alle(!) auflaufenden Events aller Konfigurationen

muss das denn nicht dann in der FHE;.cfg so angepasst werden ?
define myDbLog DbLog ./db.conf .*:(temperature|valveposition|humidity).*

oder verwechsel ich da jetzt was ?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: marvin78 am 08 Dezember 2015, 16:59:16
So oder anders, ja. Du kannst den RegEx in der DbLog Definition verwenden, um die Daten einzuschränken (siehe commandref zu DBLog). Zusätzlich gibt es in allen Devices DbLogExclude und DbLogInclude. Auch hier verweise ich dich auf die entprechenden Einträge in der commandref.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 08 Dezember 2015, 20:26:45
So, erst mal Asche auf mein Haupt, schlagt mich, tretet mich und gebt mir Tiernamen ^^

Ich hatte in den SVGs noch CURRENT drin statt HISTORY, damit habe ich das jetzt auf ca 8 Sekunden beschleunigt für inzwischen sogar 9 Plots

Das Interessante dabei ist das es zwar schneller geworden ist, ich aber weiterhin die 9 Einträge im Log habe obwohl auch in den Plots selbst HISTORY im Titel steht
2015.12.08 20:17:42 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:43 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:44 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:45 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:46 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:48 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:50 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:50 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
2015.12.08 20:17:50 3: Defining DbLog SVG-Plots with :CURRENT is deprecated. Please define DbLog SVG-Plots with :HISTORY instead of :CURRENT. (define <mySVG> SVG <DbLogDev>:<gplotfile>:HISTORY)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 15 Dezember 2015, 20:26:48
Ich grabe den Therad nochmal aus da es schon wieder los geht, ich habe jetzt als Beispiel beim Thermostat in der Küche bei
DbLogExclude
diese Readings ausgeschlossen   
MAXLAN_error,MAXLAN_errorInCommand,MAXLAN_initialized,MAXLAN_isAnswer,MAXLAN_valid,boostDuration,boostValveposition,state

zusätzlich noch in MySQL

DELETE FROM history WHERE READING = 'MAXLAN_valid';
DELETE FROM history WHERE READING = 'MAXLAN_errorInCommand';
DELETE FROM history WHERE READING = 'MAXLAN_error';
DELETE FROM history WHERE READING = 'MAXLAN_initialized';
DELETE FROM history WHERE READING = 'MAXLAN_errorInCommand';


und zusätzlich neben dem Index auf TIMESTAMP und DEVICE noch einen Index auf READING
danach noch ein Optimize table

trotzdem dauert es 8-9 Sekunden bis der Plot angezeigt wird welcher jede Minute einmal geloggt wird

Ich bekomme langsam das Gefühl das FHEM immer die gesamte Datenbank mit allen Einträgen und allen Zeiten einliest und dann in der Schleife sich nur das raus sucht was man zur Verarbeitung braucht statt

SELECT * FROM `history` WHERE DEVICE = 'Heizung.Kueche' AND TIMESTAMP < '2015-12-15 23:59:59' AND TIMESTAMP > '2015-12-15 00:00:01' AND READING IN('temperature','mode', 'valveposition', 'desiredTemperature')

hier noch mein SVG File

# Created by FHEM/98_SVG.pm, 2015-12-07 10:40:52
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 'Heizung.Kueche <L1>'
set ytics
set y2tics ("100%" 100, "50%" 50, "0%" 0, "Auto" 20, "Manu" 10)
set grid ytics y2tics
set ylabel "Temperatur °C"
set y2label "Ventil / Mode"
set yrange [5:40]
set y2range [-0.2:110]

#logdb Heizung.Kueche:temperature
#logdb Heizung.Kueche:desiredTemperature
#logdb Heizung.Kueche:valveposition
#logdb Heizung.Kueche:mode:::$val=($val=~'manual'?10:20)

plot "<IN>" using 1:2 axes x1y1 title 'Temperatur' ls l1fill lw 0.2 with lines,\
"<IN>" using 1:2 axes x1y1 title 'Temperatur (Soll)' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Ventilstellung' ls l3 lw 3 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Mode' ls l0 lw 3 with lines
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 16 Dezember 2015, 09:07:10
Zitat von: Afterburner am 15 Dezember 2015, 20:26:48
Ich bekomme langsam das Gefühl das FHEM immer die gesamte Datenbank mit allen Einträgen und allen Zeiten einliest

Irgendwelche Beweise oder Anhaltspunkte für diese wilde Vermutung?
Weder der Code in DbLog_Get() noch ein verbose 4 log deuten daruf hin.
2015.12.16 08:58:33.847 4: Processing Statement: SELECT
                  DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'),
                  DEVICE,
                  READING,
                  VALUE
                   FROM history WHERE 1=1 AND DEVICE  = 'BA_HEIZUNG' AND READING = 'measured-temp' AND TIMESTAMP >= STR_TO_DATE('2015-12-15 09:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2015-12-16 09:00:01', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 09:38:33
Na es war ja nur ne wilde Vermutung gewesen da es mit der Zeit immer langsamer wird ... das Query schaut OK aus, danke für die Info. :)
Ist der PI2 denn so schlecht von der Performance her ? Ich hatte 2004 nen Server mit Single Core für mein Forum der hat u.a. auch Grafiken für Statistiken mit gdlib erstellt
Naja dann muss wohl notfalls noch nen Intel NUC Quad Core her der den PI ablöst
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 16 Dezember 2015, 09:48:23
Es gibt auch alternativen zum NUC ... nur mal als Anregung
(z.B. Zotac Box, die haben teilweise nicht mal einen Lüfter, im Gegensatz zum NUC)

Nach dem nochmaligen Durchlesen des Threads stellt sich mir eher die Frage: Hat Dein RasPi ein Problem? Wie sieht die Systembelastung (CPU, IO, RAM etc.) während der Graferstellung aus?

Ansonsten schlägst Du ein Problem nur durch Leistung ....
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: BKSolo am 16 Dezember 2015, 09:53:06
Hallo zusammen, ich habe im Fhem das DbLog auf meinem Ruspberry Pi 2 Test aufgesetzt.

Dazu verwende ich das SQLite als SQL Datenbank, da es weniger Ressourcen braucht als MySQL.

Kann über die Plot-Performance noch nicht viel sagen, läuft aber sehr gut. Vier Plots aus einer DB mit 2558 Records < 2 Sekunden.
Gute Infos habe ich auf https://www.turais.de/fhem-logging-in-eine-sql-datenbank-2/ (https://www.turais.de/fhem-logging-in-eine-sql-datenbank-2/) gefunden.

Ein DB Browser für SQLite gibt es http://sqlitebrowser.org/ (http://sqlitebrowser.org/)

Bruno
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 10:51:50
@Wernieman

siehe Screenshot von Top, das war aber ne Seite mit 10 SVGs wovon 5 jeweils 4 Werte Plotten, 4 jeweils 2 und 1 plottet nur einen.
Die Zotac Box kannte ich noch nicht, schaut ja stylisch aus, aber vom Preis her auch nicht anders wenn nicht sogar teurer wenn ich das jetzt mal schnell überflogen habe.

@BKSolo
SQLite hatte ich zuerst auch mal probiert, aber PHPmyAdmin zur Verwaltung ist mir dann doch lieber
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 16 Dezember 2015, 11:24:42
was mich wundert, 75% idl, aber die Kiste soll langsam sein?

Wie man sieht, verbraucht eigentlich mysql am meisten,sowohl Cpu als auch mem. (p.s. Du hast swap auf dem Pi?)

aaaaaaaper ... Du hast einen X-Server Laufen? Auf einem Server??
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 16 Dezember 2015, 11:27:43
Zitat von: Wernieman am 16 Dezember 2015, 11:24:42
was mich wundert, 75% idl, aber die Kiste soll langsam sein?
1 von 4 Kernen ist am Anschlag würde ich daraus lesen. plotfork eingeschaltet?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 11:40:23
Ja xrdp ist da drauf aber das hat ja mit dem Problem hier nichts zu tun, hat halt den Vorteil das ich von jedem Windows PC rauf komme OHNE mir da irgendwelche VNC Clienten installieren zu müssen, und ja ich weiß es gibt auch VNC Portable ;)

Swap ? Ich habe das System nicht aufgesetzt, das kam so bei mir komplett an, ist das Set von hier:
http://www.pollin.de/shop/dt/ODMzNzkyOTk-/Bausaetze_Module/Entwicklerboards/Raspberry_Pi_2_mit_Touch_Display_Display_T_Box_16_GB_microSD_Karte.html

@dev0

plotfork kann ich in der fhem.cnf nicht finden, wüsste jetzt auf Anhieb ohne zu googeln auch nicht wo man das aktiviert
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 16 Dezember 2015, 11:49:09
plotfork ist ein FHEMWEB Attribut, siehe command ref.
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 11:50:15
Ja da habe ich es inzwischen auch schon gefunden ;)
Soll ich da jetzt was eintragen ? Wenn ja was ?

EDIT: Habe gerade mal geguckt, da kann man nur 0 und 1 auswählen, ist das so gewollt ?
EDIT2: Habe es jetzt mal aktiviert und es kommt mir um einiges schneller vor, schauen wir mal wie es heute Abend ausschaut
EDIT3: Wenn man jetzt die Seiten erneut aufruft sind die Plots fast sofort da

dev0 Du bist mein Held des Tages :)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 16 Dezember 2015, 13:04:02
Sorry, aber warum sollte man grafisch auf einen Server wollen? Also warum VNC ... gibt dafür ssh ...
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 13:07:36
z.B. weil ich nur dort den Eventmonitor nutzen kann, der funktioniert nicht auf meinen Windowsrechnern (kein Killer Netzwerktreiber und keine Sohos Firewall)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 16 Dezember 2015, 13:31:27
Der funktioniert auch über "telnet" ... ;o)

Alternativ: anderen Browser probiert?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 13:51:06
Ja neben FF auch Chrome und Edge und eben noch den Opera. Hatte Bitdefender auch schon mal deaktiviert aber keine Änderung, deinstallieren möchte ich den jetzt deswegen nicht. Googeln nach "bitdefender longpoll" oder "longpoll windows 10" hatte auch nicht geholfen.

Aber das wird jetzt hier dann wohl Offtopic, k.A. ob das hier im Forum OK ist, hatte das Problem auch hier mal angehangen
http://forum.fhem.de/index.php/topic,35715.msg373310.html#msg373310

----

Ansonsten werden die Plots inzwischen immer noch sehr schnell generiert, auch wenn ich auf "EVERYTHING" einen Tag zurück gehe, solch eine kleine Einstellung die alles ausgebremst hatte ^^

Das Einzige was jetzt noch nervt ist das mein FHEM log jetzt mit den DB Einträgen "zugemüllt" wird
2015.12.16 13:19:11 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:11 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4985
2015.12.16 13:19:12 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4984
2015.12.16 13:19:12 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:12 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4986
2015.12.16 13:19:13 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:13 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4987
2015.12.16 13:19:13 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:13 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4988
2015.12.16 13:19:13 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:13 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4989
2015.12.16 13:19:13 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 13:19:13 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 4990
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 16 Dezember 2015, 13:58:03
Gibt es die Logeinträge auch ohne plotfork?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 14:08:44
nur beim Start von FHEM

2015.12.16 09:07:54 0: Server shutdown
Useless use of a variable in void context at ./FHEM/99_myUtilsTelefon.pm line 184.
2015.12.16 09:07:57 1: Including fhem.cfg
2015.12.16 09:07:58 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhem
2015.12.16 09:07:58 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established for pid 3771
2015.12.16 09:07:58 3: Connection to db mysql:database=fhem;host=localhost;port=3306 established
2015.12.16 09:07:58 3: telnetPort: port 7072 opened
2015.12.16 09:07:58 3: WEB: port 8083 opened
2015.12.16 09:07:58 3: WEBphone: port 8084 opened
2015.12.16 09:07:58 3: WEBtablet: port 8085 opened
2015.12.16 09:07:59 2: eventTypes: loaded 1344 events from ./log/eventTypes.txt
2015.12.16 09:08:02 3: Opening my_callmonitor device 192.168.178.1:1012
2015.12.16 09:08:02 3: my_callmonitor device opened
2015.12.16 09:08:02 3: FB_CALLMONITOR (my_callmonitor) - loading cache file ./callmoncache.txt
2015.12.16 09:08:02 2: FB_CALLMONITOR (my_callmonitor) - read no contacts from Cache
2015.12.16 09:08:02 3: Opening FritzBoxSmartHome1 device fritz.box:2002
2015.12.16 09:08:02 3: FritzBoxSmartHome1 device opened
2015.12.16 09:08:02 1: FBAHA FritzBoxSmartHome1 registered with handle: 00000009
2015.12.16 09:08:05 1: HMLAN_Parse: hmusb new condition disconnected
2015.12.16 09:08:05 3: Opening hmusb device 127.0.0.1:1234
2015.12.16 09:08:05 3: hmusb device opened
2015.12.16 09:08:05 1: HMLAN_Parse: hmusb new condition init
keys on reference is experimental at ./FHEM/98_UbiquitiMP.pm line 553, <$fh> line 392.
2015.12.16 09:08:08 3: Opening CUL1 device /dev/ttyACM0
2015.12.16 09:08:08 3: CUL1 device opened
2015.12.16 09:08:08 3: CUL1: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2015.12.16 09:08:09 1: Including ./log/fhem.save
2015.12.16 09:08:09 3: Device Arbeitszimmer.Steckdose added to ActionDetector with 000:10 time
2015.12.16 09:08:09 3: Schlafzimmer.Harmony: connected
2015.12.16 09:08:09 1: usb create starting
2015.12.16 09:08:10 3: Probing CUL device /dev/ttyAMA0
2015.12.16 09:08:10 3: Can't open /dev/ttyAMA0: Keine Berechtigung
2015.12.16 09:08:10 1: usb create end
2015.12.16 09:08:11 0: Featurelevel: 5.7
2015.12.16 09:08:11 0: Server started with 111 defined entities (fhem.pl:10116/2015-12-06 perl:5.020002 os:linux user:fhem pid:3771)
2015.12.16 09:08:11 3: Opening ml device 192.168.178.30:62910
2015.12.16 09:08:11 3: ml device opened
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 16 Dezember 2015, 14:10:44
Hilft verbose 2 mit plotfork?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 14:26:17
jupp hat funktioniert, habe es beim DbLog auf 2 gesetzt :)
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 14:29:59
Ja Mist, jetzt habe ich mich so über die schnelle Erstellung der Plots gefreut das ich gar nicht mitbekommen habe das die Plots seit der Umstellung um ca 12 Uhr nicht mehr weiter gehen, werden auch nicht mehr in der Datenbank geloggt :(

Wäre ja auch zu schön gewesen :(

EDIT: Habe FHEM jetzt mal neu gestartet, jetzt wird wieder geloggt, hatte nach der Änderung bei plotfork keinen Neustart gemacht, wäre das wichtig gewesen ?
EDIT2: Auch hier wieder Kommando zurück, wie es ausschaut wurde nur ein Datensatz geloggt und dann wieder aufgehört zu loggenä
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Wernieman am 16 Dezember 2015, 14:47:32
Da must Du DBLog-Spezialisten Fragen ...
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 16 Dezember 2015, 14:50:58
Schaut der (wer auch immer das ist) hier von alleine rein ?

Hier scheint auch einer vor einem Jahr solch ein ähnliches Problem gehabt zu haben
http://forum.fhem.de/index.php/topic,21087.0.html

Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: BKSolo am 18 Dezember 2015, 08:11:07
Ich habe das FileLog auf DbLog geändert, verwende dazu SQLite. Zusätzlich habe ich das Plot auf ein einzelnes GPlot File mit Parametern angepasst.
Zu lesen unter http://forum.fhem.de/index.php/topic,42040.msg375369.html#msg375369 (http://forum.fhem.de/index.php/topic,42040.msg375369.html#msg375369)
Bruno
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: dev0 am 18 Dezember 2015, 08:35:20
Wird die Ploterstellung dadurch schneller auf einem PI oder wo ist der Bezug zum Thema?
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: BKSolo am 18 Dezember 2015, 16:02:13
Ja das ist so. In einer früheren Antwort habe ich auf MySQL vs. SQLite hingewiesen, was u.U. auch zu Performanceeinbussen führt.
Gruss, Bruno
Titel: Antw:Langsame Ploterstellung seit wechsel auf dem PI
Beitrag von: Afterburner am 18 Dezember 2015, 16:17:13
Mein Problem ist gelöst, es lag daran das ich die Datenbank nach der Anleitung im Wiki für SQLite erstellt habe und das Selbe für MySQL übernommen hatte ohne mitzubekommen das dort in einem Nebensatz auf ein "Install Script" für MySQL hingewiesen wurde.

Somit hatte ich mir 3 Indexe selber erstellt, einzelne Indexe was wohl ab MySQL 5 angeblich keinen Unterschied mehr machen sollte, dem ist aber nicht so.
Ein Index über DEVICE-READING-TIMESTAMP (in der Reihenfolge) hat das Problem beseitigt.

PI kann ich jetzt nicht mehr testen da ich auf den NUC umgezogen bin aber das Problem ist ja erkannt und sollte auch beim PI zur Lösung führen.
Für die Suchfunktion hier nochmal der Screenshot den ich für den anderen Thread erstellt habe.