FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Thorsten Pferdekaemper am 06 Januar 2014, 19:33:51

Titel: SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Thorsten Pferdekaemper am 06 Januar 2014, 19:33:51
Hi,
ich bin mir nicht ganz sicher, ob ich in diesem Forumsbereich richtig bin. Falls nicht, dann bitte verschieben.
Bei mir kommt es sporadisch zum Disconnect beim HMLAN. Anscheinend liegt das an den SVG-Plots. (Siehe auch http://forum.fhem.de/index.php/topic,17990.msg122464.html#msg122464 (http://forum.fhem.de/index.php/topic,17990.msg122464.html#msg122464))
Mir ist schon klar, dass die Fritz!Box 7390 nicht die allerschnellste Kiste ist, aber kann man da was machen? Es müsste doch möglich sein, den CPU-Intensiven Teil der Plots in einen anderen (Low-Prio) Prozess auszulagern. Oder?
Oder gibt's eine Möglichkeit, die Plots massiv zu beschleunigen?
Gruß,
   Thorsten

Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: hexenmeister am 06 Januar 2014, 21:59:44
So ähnlich verhält sich meine FHEM-Installation leider auch. Bei der Aktualisierung eines Raums (mit mehreren Plots) kommt fast immer zum HMLAN-Diskonnect. FHEM läuft bei mir auf einem Raspberry Pi.
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: rudolfkoenig am 06 Januar 2014, 22:51:45
Mit plotfork werden die SVGs in einem separaten Prozess berechnet, allerdings braucht das etwas an Speicher.

Beschleunigen kann man das z.Bsp, indem man das SVG nicht mit eine interpretierte Programmiersprache wie perl sondern mit eine kompilierte (C/C++/etc) berechnet. Oder auf dem Client mit JavaScript. Beides bedeutet SVG.pm und Teile von FileLog.pm neu zu programmieren.
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Thorsten Pferdekaemper am 07 Januar 2014, 10:22:17
Hi,
danke, das mit dem plotfork kannte ich noch nicht. Weiß jemand, ob man das auf der Fritz!Box 7390 gefahrlos einschalten kann? Keine Ahnung, wie viel interner Speicher das Teil hat...

Von wegen neu programmieren: Mir ist schon klar, dass man Software immer optimieren kann. Ich dachte eher an irgendwelche Einstellungen in FHEM oder "geschicktere" Erstellung der Files. Zum selbst entwickeln fehlt mir momentan leider die Zeit.
Gruß,
    Thorsten

Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: rudolfkoenig am 07 Januar 2014, 11:32:34
Optimieren ohne Programmieren:
- FileLog sollte keine Daten enthalten, die  nicht verwendeten werden.
- Es ist schneller, wenn Temperatur und Feuchte auf eine Zeile zu finden sind (z.Bsp. als T: $temp H: $hum), als auf unterschiedliche.

Uebrigens ein 7 Jahre altes Core2@2GHz Notebook mit ca 20Watt Stromaufnahme ist ueber 50-mal schneller beim berechnen der SVGs, als ein FB7390, siehe http://forum.fhem.de/index.php/topic,11491.msg67292.html#msg67292. Und dabei wird sein zweiter Core noch nicht mal verwendet, was bei mehreren SVGs mit plotfork definitiv funktioniert.
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Thorsten Pferdekaemper am 08 Januar 2014, 19:27:26
Hi Rudolf,
Ja, ist schon klar, dass es leistungsfähigere Hardware gibt als die Fritzbox, aber das Teil läuft sowieso schon 7x24 und langweilt sich die meiste Zeit.
Deine Tipps zur Optimierungen haben geholfen. Vielen Dank. Ich lasse jetzt eine Datei schreiben, die für jeden Zeitpunkt immer nur eine Zeile mit den Daten enthält, die ich tatsächlich sehen will. Das alte Teil habe ich vorerst mal dringelassen, um die Laufzeit zu vergleichen. Hier ist das Ergebnis von apptime:

                      name             function    max  count    total  average param Max call
   FileLog_og_ku_HeizungOp          FileLog_Get   4023      3    11922  3974.00 HASH(0xd89800); FileLog_og_ku_HeizungOp;
FileLog_og_ku_HeizungSmall          FileLog_Get    654      3     1915   638.33 HASH(0xd95658); FileLog_og_ku_HeizungSmall;

Die erste Zeile ist das alte, die zweite das neue. Es braucht jetzt nur noch etwa 16% der Laufzeit. Ich denke, das reicht erstmal.
Hier sind zwei typische Ausschnitte der Logfiles
Alt:

2014-01-08_01:11:16 og_ku_HeizungOp motorErr: ok
2014-01-08_01:11:16 og_ku_HeizungOp measured-temp: 20.3
2014-01-08_01:11:16 og_ku_HeizungOp desired-temp: 20
2014-01-08_01:11:16 og_ku_HeizungOp ValvePosition: 0 %
2014-01-08_01:11:16 og_ku_HeizungOp mode: auto
2014-01-08_01:11:16 og_ku_HeizungOp T: 20.3 desired: 20 valve: 0 %
2014-01-08_01:14:08 og_ku_HeizungOp motorErr: ok
2014-01-08_01:14:08 og_ku_HeizungOp measured-temp: 20.3
2014-01-08_01:14:08 og_ku_HeizungOp desired-temp: 20
2014-01-08_01:14:08 og_ku_HeizungOp ValvePosition: 0 %
2014-01-08_01:14:08 og_ku_HeizungOp mode: auto
2014-01-08_01:14:08 og_ku_HeizungOp T: 20.3 desired: 20 valve: 0 %


Neu:

2014-01-08_01:11:16 og_ku_HeizungOp T: 20.3 desired: 20 valve: 0 %
2014-01-08_01:14:08 og_ku_HeizungOp T: 20.3 desired: 20 valve: 0 %


Ich denke, ich werde jetzt mal alle umstellen.

Gruß,
    Thorsten
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Samsi am 16 Januar 2014, 23:32:15
Hallo,

ich würde das auch gerne machen, wie bekomme ich das denn hin, dass in dem FileLog nur eine Zeile steht?

Grüße
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Thorsten Pferdekaemper am 17 Januar 2014, 09:20:15
Hi,
Ich habe das hier als Regexp für den FileLog eingetragen:
og_ku_HeizungOp:T:.*
Der erste Teil ist der Name vom Channel und wird bei Dir natürlich anders aussehen.
Gruß,
Thorsten
Titel: Antw:SVG-Plot erzeugt HMLAN disconnects
Beitrag von: Samsi am 17 Januar 2014, 12:08:57
Ah, alles klar.

Ich hab gar nicht gesehen, das dies schon im Original FileLog so steht:

2014-01-08_01:11:16 og_ku_HeizungOp T: 20.3 desired: 20 valve: 0 %

ich hatte deshalb angenommen du hast eine regexp gebastelt, die drei einzelnen Zeilen in eine überführt ;)

Danke