Langsame Ploterstellung seit wechsel auf dem PI

Begonnen von Afterburner, 07 Dezember 2015, 14:15:52

Vorheriges Thema - Nächstes Thema

franky08

@frank
Ja,ja irgendwann wird das editieren der fhem.cfg hoffentlich aussterben  :) :) ;)
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

frank

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

Afterburner

#17
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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

Afterburner

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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

franky08

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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

BKSolo

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
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

Afterburner

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.
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

rudolfkoenig

Womoeglich hatte ich mit meiner Bemerkung in Beitrag #7 gar nicht so unrecht :)

BKSolo

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
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

Afterburner

@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
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

LuckyDay

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

rudolfkoenig

Zitatgeht das denn überhaupt mit der DB ?
Weniger Daten reinschreiben? Ja, das geht sogar mit einer DB.

Afterburner

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 ?
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender

marvin78

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.

Afterburner

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)
CUL 868 --> Dirks Universalsensor - ESA200 Strommesser
HM USB --> HM Klingelsensor - HM Zwischenstecker
MAXLAN --> 5 x Thermostat - 4 x Fensterkontakt - ECO Taster - Cube
Arduino Nano V3.0 CC1101 433 MHz --> für Revolt Strommesser
bestellt: JeeLink 868 --> für TX 29 DT-HT Außensender