FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Schlauer Det am 24 September 2019, 18:54:44

Titel: Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Schlauer Det am 24 September 2019, 18:54:44
Liebe FHEM-Gemeinde,

derzeit läuft meine Vaillant-Heizung unter strenger Beobachtung durch eBusd und GAEBUS.
Dabei produziert mein Heiz-Raspi mit FHEM täglich eine neue Datei mit den Messwerten der Heizung, die ich auch wunderschön als Plot auf dem Heiz-Raspi anzeigen kann.

Ich möchte nun gerne auf einer anderen (virtuellen) Maschine unter Raspbian und FHEM die auf diese Weise produzierten Dateien in der gleichen Weise wie auf dem Heiz-Raspi, völlig unabhängig von diesem, darstellen. Das FHEM auf der VM soll dann nichts anders tun, als die Daten über SVG als Plot anzeigen.

Nach tagelangem Lesen und Experimentieren bin ich jetzt an einem Punkt, wo es nicht mehr weitergeht.

Kann mir bitte jemand ein paar Tipps geben, wie ich meine Vorstellung realisieren kann, möglichst mit detaillierten Anweisungen für Dummies  ;).


Grüße von der sonnigen See
Det :-)
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Timo_FHEM am 24 September 2019, 20:18:53
Hi,

hast du dir mal Grafana angesehen? Wenn es "nur" ums Anzeigen geht, wäre das eine gute Alternative zu Plots mit Fhem.

Gruß Timo

Gesendet von meinem MI 9 mit Tapatalk

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: satprofi am 24 September 2019, 20:49:07
FHEM2FHEM?

Gesendet mit Tapatalk

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 24 September 2019, 20:50:51
Hi,

was ich machen würde: FHEM2FHEM die Daten auf zweites FHEM übertragen, dort Plots anlegen. Fertig funktioniert wie  im ersten FHEM.
Nehmen wir an es geht um den Inhalt des Devices Daten in FHEM 1

FHEM 2 <- FHEM2FHEM LOG:Daten <- FHEM 1
FHEM 2 hat Dummy Daten, Der Dummy hat die gleichen Werte wie das Device Daten in FHEM 1
FHEM 2 hat gleiches FileLog wie FHEM 1 (kann man mit Raw Def kopieren)
FHEM 2 hat gleiches SVG Plot wie FHEM 1 (kann man mit Raw Def kopieren)

Wenn Du das nicht ab heute sondern rückwirkend für "die letzten Jahre" und für mehrere Devices machen willst, habe ich hier eine Lösung (https://heinz-otto.blogspot.com/2019/07/definitionen-in-fhem-komplett-umziehen.html).

Nachteil doppelte Datenhaltung
Nur einmal Datenhaltung ginge mit dblog, zweites FHEM auf die gleiche Datenbank verknüpfen. Erstmal aufwendig wenn nicht schon vorhanden.

Gruß Otto
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: maci am 25 September 2019, 14:12:20
Ich habe auch so eine ähnliche Konstruktion.
Heizungsfhem und mein Haussteuerungsfhem.

Logge mit dbLog am Haussteuerungsrechner.
Zusätzlich lasse ich mir einige Werte per Mqtt vom Heizungsfhem senden.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Schlauer Det am 26 September 2019, 16:53:19
Vielen Dank für die Vorschläge  :D.

Leider ist mir die Verwendung immer weiterer Tierchen in meinem Software-Zoo zu kompliziert und aufwendig. Daher fallen schon mal solche Lösungen wie Grafana, dbLog und FHEM2FHEM für mich aus.

Mir geht es schlicht darum, dass ich Dateien mit den Daten meines Heiz-Raspis in Dateien mit dem Namen <fhemlog-%Y-%m-%d.log> auf mein VM-Raspbian kopiere und dort einfach von SVG plotten lasse.

Kann mir jemand erklären, was ich auf meinem VM-Raspi in FHEM definieren muss, damit das funktioniert?
Oder kann man das mit FHEM so nicht realisieren??


Grüße aus dem norddeutschen Regen
Det  :)
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Timo_FHEM am 26 September 2019, 20:44:22
Vielleicht könntest du auch die Dateien per cronjob auf den anderen raspi kopieren und dann da mit Fhem Plots anzeigen.
Wenn du aber eh auf beiden Rechnern Fhem laufen hast, kannst du auch fhem2fhem nutzen.


Gesendet von meinem MI 9 mit Tapatalk

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 26 September 2019, 22:21:23
Zitat von: Schlauer Det am 26 September 2019, 16:53:19
Mir geht es schlicht darum, dass ich Dateien mit den Daten meines Heiz-Raspis in Dateien mit dem Namen <fhemlog-%Y-%m-%d.log> auf mein VM-Raspbian kopiere und dort einfach von SVG plotten lasse.
Wie das einmalig geht steht in meinem Link. Danach musst Du die Dateien mit irgendeinem Tierchen von A nach B kopieren. Ohne Tierchen geht das nicht  ;D

Gruß Otto
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: FHEM-User22 am 27 September 2019, 08:18:19
Moin,
mal als Ansatz: Das Verzeichnis mit den LOG-Dateien des ersten Raspi einfach per cifs oder nsf auf den zweiten Raspi als LOG-Verzeichnis (eventuell nur lesbar) einbinden. Damit sollte der zweite Raspi dauch auch alles anzeigen können.
https://www.tutonaut.de/anleitung-netzwerkfreigaben-dauerhaft-linux-einbinden/ (https://www.tutonaut.de/anleitung-netzwerkfreigaben-dauerhaft-linux-einbinden/)

Grüße
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Reinhart am 27 September 2019, 09:17:07
ganz ohne Definitionen geht natürlich gar nichts.
Mach es doch so, wie Otto123 es hier beschrieben (https://forum.fhem.de/index.php/topic,94612.msg873405.html#msg873405) hat, das sind nur  je 1 Eintrag pro Fhem. Statt dem früheren "clonedummy" reicht ein "dummy" mit gleichem Namen.


LG
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 27 September 2019, 09:26:08
Man kann auch die Plots als Bild oder was anderes exportieren und diese im anderen System einfach anzeigen. Man kann auch in FHEM ein Web /allowed  definieren welches nur Zugriff auf die Seite mit den Plots hat und diese als Default anzeigt.
Man kann eine RSS Seite bauen.

Alles "Tierchen" :)


Gruß Otto

Nachtrag:
ZitatStatt dem früheren "clonedummy" reicht ein "dummy" mit gleichem Namen.
Wenn mann im zweiten FHEM nur loggen will, braucht man auch keinen Dummy. Da die Events vom ersten FHEM quasi abgegriffen werden, kann man diese direkt ins Log schreiben ohne ein Gerät haben zu müssen.
Titel: [Gelöst]: Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Schlauer Det am 27 September 2019, 16:35:25
Werte Unterstützer und Helfer,

habe mein Problemchen nun auf die für mich einfachste Weise gelöst:

Da ich dummerweise immer auf die falsche Datei zugegriffen hatte, kam ich bisher einfach nicht weiter.
Manchmal sieht man halt vor lauter Bits die Daten nicht  >:( ).

Nu löpt et  ;D.


Vielen Dank an die freundliche Unterstützergemeinde.
Von der sonnigen Küste
Det  :)
Titel: Antw:[Gelöst]: Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 29 November 2019, 17:30:15
Zitat von: Schlauer Det am 27 September 2019, 16:35:25
Werte Unterstützer und Helfer,

habe mein Problemchen nun auf die für mich einfachste Weise gelöst:

  • Ich kopiere die Log-Datei mit WinSCP (ein mit ganz gut bekanntes Software-Tierchen  ;)) von meinem Heiz-Raspi auf meine VM
  • Auf der VM mit FHEM kann ich mir nun ziemlich einfach mit dem Fakelog die von mir gewünschten Plots generieren


könntest Du freundlicher weise mal die komplette Zeile/Anweisung für das fakelog posten?

Ich habe eigentlich das gleiche vor, werde allerdings mit rsync arbeiten, damit nicht jedes Mal alles neu kopiert werden muss.

Danke
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Schlauer Det am 30 November 2019, 09:48:05
Moin Thomas,

vielleicht hilft Dir das Bild im Anhang weiter.

Greetz
Det  :)

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Prof. Dr. Peter Henning am 30 November 2019, 09:54:03
Es ist einfach Unsinn, nur zur Anzeige eines Plots ganze Log-Dateien zu kopieren...

Die Plots werden in einer "normalen" FHEMWEB-Anzeige einfach als <embed...> Tags dargestellt (auf dem Heizungs-FHEM "Seitenquelltext anzeigen" -> Suche nach "embed")

Also kann man problemlos auf dem Ziel-FHEM ein Dummy-Device definieren und dort in das Attribut "stateFormat" den HTML-Code für den embed-Tag eintragen, oder ein weblink-Device mit diesem Code definieren.

Natürlich muss die Quellangabe um die IP-Adresse des Heizungs-FHEM ergänzt werden. Mit etwas mehr Perl Code kann man auch den Wechsel von Zoom-Stufen etc. einbauen.


LG

pah


Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: herrmannj am 30 November 2019, 12:05:41
ja. Vielleicht helfen folgende Fragen an den TE:

* "_warum_ sollen die Daten von einer _zweiten_ Instanz dargestellt werden?"
* "Gibt es eventuell ein darunterliegendes Problem das gelöst werden soll?"
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Schlauer Det am 30 November 2019, 12:42:11

Moin,

als TE möchte ich mich dazu gern einmal äussern.
In meinem Eröffnungsbeitrag schrieb ich Folgendes:

Zitat von: Schlauer Det am 24 September 2019, 18:54:44
...

Ich möchte nun gerne auf einer anderen (virtuellen) Maschine unter Raspbian und FHEM die auf diese Weise produzierten Dateien in der gleichen Weise wie auf dem Heiz-Raspi, völlig unabhängig von diesem, darstellen. Das FHEM auf der VM soll dann nichts anders tun, als die Daten über SVG als Plot anzeigen.
...


Dementsprechend hatte ich angenommen, dass meine Zielsetzung eindeutig dargestellt worden wäre, was aber möglicherweise nicht der Fall ist.

Nun gut, nicht jeder liest alles und nicht jeder der was gelesen hat, interpretiert das Gelesene im Sinne des Schreibers, was ja auch oft vom Schreiber zu verantworten ist.

Mein Ziel war es, einmal geloggte Dateien auf einen mobilen Rechner zu packen und räumlich sowie zeitlich getrennt von meinem Heiz-Raspi Auswertungen über SVG zu machen, von denen ich erst während der Auswertung weiss, was ich sehen will.

Und nein, @herrmannj, es gibt derzeit kein darunterliegendes Problem, ausser dem, dass ich meine Heizung optimieren will. Das allerdings ist eher eine Herausforderung und kein echtes Problem. Wenn es das gäbe, hätte ich es schon hier dargestellt und um Hilfe gebeten.


Hoffe, dass ich mein Anliegen nun etwas verständlicher dargestellt habe und danke den freundlichen Forumsteilnehmern für unter Umständen auch etwas voreilige Kategorisierungen meiner Beiträge.

Grüße von der kühlen Küste
Det  :)
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 01 Dezember 2019, 18:47:26
Hallo,

ich habe die gleiche Problematik (<10Mbit Verbindung und alte raspis der 1.Generation die bei Diagrammabruf auf top98% gehen und das für 20 Sekunden), aber durchblicke das ganze nicht, da ich von fhem bisher nur sehr sehr wenig verstanden habe, da es mir hierzu einfach an Hirn fehlt.

Ich habe es nun so angegangen, dass ich auf der VM (debian 10.2), auf der ich lediglich alle Plots darstellen will (von 3 Raspis, 2AVM Steckdosen und einer Fritzbox), ein leeres FileLog erstellt habe:


define FileLog_WS300_RsyncR1 FileLog  ./log/FileLog_WS300_RsyncR1-%Y.log FileLog_WS300_RsyncR1:.*


[Hier fingen schon meine Unkenntnis an, da ich einfach dachte, dass ich die Regex am Ende weglasse und dann wird auch nichts geloggt, was aber scheinbar nicht geht. Irgendwo habe ich dann ein Beispiel gefunden, wo jemand eine sinnlose Regex gebastelt hat, die nie getriggert wird.]

somit habe ich eine leere Datei, an die ich mittels cat testweise im laufenden Betrieb anfügen kann, ohne das es FHEM stört.


cat FileLog_WS300-2019.log >> FileLog_WS300_RsyncR1-2019.log


natürlich werde ich es im Endefekt mit rsync und crontab erledigen, damit es so wenig wie möglich traffic gibt.
Wenn rsync zu träge ist, muss ich mir ein script schreiben, was immer nur die letzten Logzeilen ausliest und auf der Ziel-VM anfügt.

Sollte es ein fhem-Modul geben, was dieses "logshipping" beherrscht wäre ein Hinweis sehr nett.
fhem2fhem käme da sicherlich in Frage, aber da brauche ich bestimmt ein paar Tage, um da durchzusteigen und diese Zeit fehlt mir.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 01 Dezember 2019, 21:19:33
Hallo ThomasFh,

vielleicht verkürzt das die Zeit:
Nehmen wir an Du hast zwei Maschinen: MA1 und MA2. Auf MA1 gibt es ein Gerät willi, dessen Daten willst Du auf MA2 loggen.

Prüfen auf MA1 ob Telnet definiert ist:
list TYPE=telnet wenn da nichts kommt, machst Du das.
define telnetPort telnet 7072 global

Auf MA2 erledigen zwei define Zeilen den Rest:
define F2FMA1 FHEM2FHEM MA1:7072 LOG:willi

define FileLog_willi FileLog  ./log/FileLog_willi-%Y.log willi:.*

MA2 und willi musst Du natürlich anpassen. Wenn telnet schon definiert ist musst Du eventuell das Port und die Anmeldung anpassen.

Gruß Otto
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 16:22:11
Sorry.. sehe gerade, dass ich MA1 und MA2 verwechselt habe ..
und habe alles editiert ..

Hallo Otto,

danke für die Mühe, ich habe es mal versucht:

Meine Quellmaschine heisst Raspi2
Meine Zielmaschine, dort wo die Diagramme erstellt werden sollen heisst: DebianFhemVM1

Somit wären
MA2==DebianFhemVM1
MA1==Raspi2

Auf  MA2

define telnetPort telnet 7072 global   


das klappt, ich komme dann mit 

telnet  DebianFhemVM1 7072

aus der ferne auf die Zielmaschine

Auf MA1 == Raspi habe ich ein WS300 mit folgender Ausgabe:


WS300
A1      T: 22.3 H: 53 Bat: Ok LR: 0
A2      T: 6.9 H: 81 Bat: Ok LR: 0
A3      T: 21.1 H: 59 Bat: Ok LR: 0
A4      T: 3.1 H: 88 Bat: Ok LR: 6
A5      T: 21.6 H: 52 Bat: Ok LR: 0
A6      T: 21.7 H: 54 Bat: Ok LR: 0
A7      T: 2.5 H: 93 Bat: Ok LR: 0
A8      T: 7 H: 76 Bat: Ok LR: 0
A9      T: 21.6 H: 55 P: 1012.0 Willi: 0
WS300Device  connected


von daher habe ich keinen Willi


Auf dem MA2 habe ich dann die erste Unklarheit:

und ich scheitere schon an der RegEx am Ende weil ich nie weiss und immer probieren muss, was da rein soll. hoffe ich mal, dass damit alles erfasst wird:

define F2FRaspi2VM1 FHEM2FHEM  Raspi2:7072 LOG:.*
define FileLog_WS300_F2F FileLog ./log/FileLog_WS300_F2F-%Y.log A1:.*|A2:.*|A3:.*


Soo. habe nun alles mit der richtigen Bezeichnung aufgerschrieben.

Auf meinem Zielsystem habe ich nun das erwartete LOG, was aber leider leer ist, weil, wie schon vermutet die Regex nicht stimmen.

Wenn Du mir da anhand der weiter oben gezeigten  Ausgabe des ws300 noch weiter helfen könntest, wäre es toll.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 16:28:32
Wenn ich Dich richtig verstehe ist willi=WS300
ZitatIch brauche aber ein FileLog auf der Maschine die die Diagramme auswertet und nicht auf dem Raspi, der unter seiner Last eh schon ächtst.
Den habe ich dann nicht verstanden :-[
Den File Log brauchst Du doch wo Du auswerten willst?!

Was ist denn jetzt was?
ZitatMeine Quellmaschine heisst Raspi2 (MA2)
Meine Zielmaschine, dort wo die Diagramme erstellt werden sollen heisst: DebianFhemVM1

Somit wären
MA1==DebianFhemVM1
MA2==Raspi2

Warum änderst Du dann willkürlich meinen regEx Vorschlag?
Das hier ist Hochlastbetrieb:
define F2FDebianFhemVM1 FHEM2FHEM  DebianFhemVM1:7072 LOG:.*

Dein F2F ist denk ich falsch (hatte ich eigentlich klar geschrieben :( ),
das muss auf Raspi2 zeigen:
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:WS300

Dein Filelog sollte so aussehen (auf dem DebianFhemVM1):
define FileLog_WS300_F2F FileLog ./log/FileLog_WS300_F2F-%Y.log WS300:.* Wenn das nicht loggt brauche ich einlist WS300
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 16:49:11
habe leider Quelle und Ziel durcheinandergewürfelt und es nun richtig gestellt.

hier das
list WS300Device


Internals:
   DEF        /dev/WS300USB0
   DeviceName /dev/WS300USB0
   FUUID      5de0469e-f33f-153c-4f8b-72189a0f361f6fd1
   NAME       WS300Device
   NR         14
   SENSOR     10
   STATE      connected
   TYPE       WS300
   READINGS:
     2019-12-02 13:15:51   WS300Device     connected
Attributes:


Den Rest des Postings sehe ich mir gleich an ..
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 17:08:20
Gut ich verstehe es nicht :(
Was ist das dann?
ZitatAuf MA1 == Raspi habe ich ein WS300 mit folgender Ausgabe:

WS300
A1      T: 22.3 H: 53 Bat: Ok LR: 0
A2      T: 6.9 H: 81 Bat: Ok LR: 0
A3      T: 21.1 H: 59 Bat: Ok LR: 0
A4      T: 3.1 H: 88 Bat: Ok LR: 6
A5      T: 21.6 H: 52 Bat: Ok LR: 0
A6      T: 21.7 H: 54 Bat: Ok LR: 0
A7      T: 2.5 H: 93 Bat: Ok LR: 0
A8      T: 7 H: 76 Bat: Ok LR: 0
A9      T: 21.6 H: 55 P: 1012.0 Willi: 0
WS300Device  connected


von daher habe ich keinen Willi
Egal - Du musst die Richtung tauschen und willi WS300 was auch immer einfach durch den RICHTIGEN Gerätenamen ersetzen der Geloggt werden soll. Da spielt der ZAUBER von regEx überhaupt keine Rolle. ;D

Wenn es mehrere Geräte sind versuch es erstmal mit Einem. Den Rest können wir machen wenn es läuft.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 17:13:29
ein

list WS300

bringt

No device named WS300 found


habe nun die Regex so wie angegeben erstellt, das Log ist auch auf DebianFhemVM1, wo ich es hinhaben will, nur leider ist es leer.

Deine Regex hatte ich im ersten Posting abgeändert weil ich auf meinem Raspi überhaupt nur etwas mit dieser DEF geloggt bekomme:

./log/FileLog_WS300-%Y.log  .*

der dazugehörige SVG Example Output sieht so aus:


2019-12-02_17:06:52 A1 T: 22.3 H: 51 Bat: Ok LR: 0
2019-12-02_17:07:52 A1 battery: Ok
2019-12-02_17:07:52 A1 humidity: 51
2019-12-02_17:07:52 A1 lost_receives: 0
2019-12-02_17:07:52 A1 temperature: 22.3
2019-12-02_17:06:52 A2 T: 7.9 H: 84 Bat: Ok LR: 0
2019-12-02_17:07:52 A2 battery: Ok
2019-12-02_17:07:52 A2 humidity: 84
2019-12-02_17:07:52 A2 lost_receives: 0
2019-12-02_17:07:52 A2 temperature: 7.9
2019-12-02_17:06:52 A3 T: 21.2 H: 56 Bat: Ok LR: 0
2019-12-02_17:07:52 A3 battery: Ok
2019-12-02_17:07:52 A3 humidity: 56
2019-12-02_17:07:52 A3 lost_receives: 0
2019-12-02_17:07:52 A3 temperature: 21.2
2019-12-02_17:06:52 A4 T: 4.2 H: 88 Bat: Ok LR: 6
2019-12-02_17:07:52 A4 battery: Ok
2019-12-02_17:07:52 A4 humidity: 88
2019-12-02_17:07:52 A4 lost_receives: 6
2019-12-02_17:07:52 A4 temperature: 4.2
2019-12-02_17:06:52 A5 T: 21.7 H: 52 Bat: Ok LR: 1
2019-12-02_17:07:52 A5 battery: Ok
2019-12-02_17:07:52 A5 humidity: 52
2019-12-02_17:07:52 A5 lost_receives: 1
2019-12-02_17:07:52 A5 temperature: 21.7
2019-12-02_17:06:52 A6 T: 21.7 H: 54 Bat: Ok LR: 0
2019-12-02_17:07:52 A6 battery: Ok
2019-12-02_17:07:52 A6 humidity: 54
2019-12-02_17:07:52 A6 lost_receives: 0
2019-12-02_17:07:52 A6 temperature: 21.7
2019-12-02_17:06:52 A9 T: 21.7 H: 53 P: 1010.0 Willi: 0
2019-12-02_17:07:52 A9 humidity: 53
2019-12-02_17:07:52 A9 pressure: 1010.0
2019-12-02_17:07:52 A9 temperature: 21.7
2019-12-02_17:07:52 A9 willi: 0



D.h., da taucht der eigentliche Gerätename nie drin auf.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 17:43:20
wieder Hochlast :(
./log/FileLog_WS300-%Y.log  .*
So schreibst Du ALLES in ein Log File.

Gut ich rate mal: mach mal ein list A1auf deinem Raspi2

Gruß Otto
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Prof. Dr. Peter Henning am 02 Dezember 2019, 17:47:32
Außerdem ist das, was hier als "SVG Example Output" hingeschrieben worden ist, kein SVG Code.

LG

pah

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 18:06:33
Zitat von: Otto123 am 02 Dezember 2019, 17:43:20
wieder Hochlast :(
./log/FileLog_WS300-%Y.log  .*
So schreibst Du ALLES in ein Log File.

Gut ich rate mal: mach mal ein list A1auf deinem Raspi2

Gruß Otto

ja, so schreibe ich alles rein, da läuft auf dem Raspi nur die Temperarturauswertung


list A1:

Internals:
   DEF        0
   FUUID      5de046a0-f33f-153c-97a0-83d853431407c6aa
   NAME       A1
   NR         16
   SENSOR     0
   STATE      T: 22  H: 51  Bat: Ok  LR: 1
   TYPE       WS300
   READINGS:
     2019-12-02 18:02:49   battery         Ok
     2019-12-02 18:02:49   humidity        51
     2019-12-02 18:02:49   lost_receives   1
     2019-12-02 18:02:49   state           T: 22  H: 51  Bat: Ok  LR: 1
     2019-12-02 18:02:49   temperature     22
Attributes:

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 18:09:09
Zitat von: Prof. Dr. Peter Henning am 02 Dezember 2019, 17:47:32
Außerdem ist das, was hier als "SVG Example Output" hingeschrieben worden ist, kein SVG Code.

LG

pah

ja sorry, ich habe es in Code Tags gepackt, damit es sich vom normalen Text absetzt. Wenn es gegen die Etikette verstößt lasse ich es sein.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 18:14:56
ok und was gibt uns ein list TYPE=WS300
Zitatda läuft auf dem Raspi nur die Temperarturauswertung
den versteh ich wieder nicht. Auf welchem Raspi?

Idee vorab:
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1|A2|A3kann man bez. der Ax entsprechend anpassen.
Damit nur diese Zeilen loggen -> 2019-12-02 18:02:49   state           T: 22  H: 51  Bat: Ok  LR: 1
define FileLog_WS300_F2F FileLog ./log/FileLog_WS300_F2F-%Y.log A1:T:.*|A2:T:.*|A3:T:.*

Das kann man intelligenter machen mit den regEx. Aber erstmal so zum Test!
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 18:18:20
Zitat von: ThomasFh am 02 Dezember 2019, 18:09:09
Wenn es gegen die Etikette verstößt lasse ich es sein.
Nein Pah meint nicht die Codetags, das was Du als SVG Output bezeichnest ist irgendein Teil des Logfiles. Ich komme auch nicht klar woher Du das eigentlich nimmst :(
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Prof. Dr. Peter Henning am 02 Dezember 2019, 18:20:59
Zitatja sorry, ich habe es in Code Tags gepackt, damit es sich vom normalen Text absetzt. Wenn es gegen die Etikette verstößt lasse ich es sein.

Nicht auch noch pampig werden. Der Text innerhalb der Code Tags ist kein SVG, sondern einfach nackte und unverarbeitete Log-Daten.

LG

pah


Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 18:54:42
Zitat von: Otto123 am 02 Dezember 2019, 18:14:56
ok und was gibt uns ein list TYPE=WS300den versteh ich wieder nicht. Auf welchem Raspi?

Idee vorab:
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1|A2|A3kann man bez. der Ax entsprechend anpassen.
Damit nur diese Zeilen loggen -> 2019-12-02 18:02:49   state           T: 22  H: 51  Bat: Ok  LR: 1
define FileLog_WS300_F2F FileLog ./log/FileLog_WS300_F2F-%Y.log A1:T:.*|A2:T:.*|A3:T:.*

Das kann man intelligenter machen mit den regEx. Aber erstmal so zum Test!


Erstmal danke für Eure Geduld ..

Auf dem Raspi genau gesagt dem Raspi2 (hostname) ist ein WS300PC per usb (via udev) angeschlossen. Weiter nichts. Der Raspi ist noch von der ersten Generation und noch mit SD-Karte und erzeugt beim Diagrammerstellen 98% CPU Last, was man sich mit top recht gut ansehen kann. Ich werde auch nicht auf dblog umstellen.

Das Filelog für das Plotfile wird momentan so erstellt:

define        FileLog_WS300 FileLog             ./log/FileLog_WS300-%Y.log  .*

Wobei alles mitgeloggt wird, aber zu 95% sind es nur die Daten der Sensoren.
Da ich die Sensornamen momentan auch noch ändere, habe ich zunächst auf einen Filter der Art: A1:.*|A2:.*|A3:.* verzichtet.

Dort (Raspi2) lasse ich mir momentan auch Plots generieren, was aber mit Antwortzeiten von ca. 20 Sek. erkauft wird.

Von daher wollte ich das FileLog_WS300-%Y.log auf eine stärkere Maschine mit dem Hostnamen: "DebianFhemVM1" verlagern um dort das Plotfile zu generieren.

Hier käme dann die vorgeschlagene Lösung FHEM2FHEM zum Zuge.

Und diese Lösung funktioniert auch, wenn ich die Regex so schreibe:

hier nur die DEFs:
Raspi2:7072 LOG:.*
./log/FileLog_WS300_F2F-%Y.log .*


Im nächsten Post beantworte ich dann die Frage, wo ich die Dumps her habe.


Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 19:11:27
Zitat von: Otto123 am 02 Dezember 2019, 18:18:20
Nein Pah meint nicht die Codetags, das was Du als SVG Output bezeichnest ist irgendein Teil des Logfiles. Ich komme auch nicht klar woher Du das eigentlich nimmst :(

Die Daten habe ich hier her:

FHEM-Web-GUI:
http://....:8083/fhem

Menü:
Unsorted->FileLog->

hier stehen dann alle Logs und man sucht sich das Log heraus, aus dem man den SVG-Plot generieren will und klickt den Eintrag (link) an.
Nun kann man auf den link: "Create SVG Plot" klicken (das geht nun auf der DebianFhemVM1 in 0 Komma nichts und hat auf dem Raspi2 schon mal 10 Sek gedauert).
Man befindet sich nun im Plot-Editor und kann sich hier sein Diagramm zusammenklicken oder ein bestehendes Diagramm ändern.
Im unteren Bereich des Ploteditors sieht man: "Example lines for input:"
was ich mit SVG Output bezeichnet habe.

Die Ausgabe entspricht aber (bei mir) im Prinzip dem, was ich im Event-Monitor sehe, nur dass ich dann ein paar Stunden warten müsste und nicht die alten Werte sehe.

Ich hoffe dass das ganze nun klarer ist.

Mein einziges zu lösendes Problem, wären dann die beiden Regex zu verfeinern, wenn ich später zu 100% die Sensoren haben will, die ich brauche.

Ich kapiere leider nicht, warum ich ein WS300 in der Regex eingeben soll, obwohl der String "WS300" in den FileLogs nie auftaucht.

Ich hatte das bisher immer so verstanden, dass man mittels Regex nur das filtern kann, was im Log steht.

Aber dann müsste bei mir doch so etwas wie

019-12-02_18:57:49 WS300:A5 T: 21.9 H: 52 Bat: Ok LR: 0

im FileLog stehen, da steht aber nur

019-12-02_18:57:49 A5 T: 21.9 H: 52 Bat: Ok LR: 0







Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Prof. Dr. Peter Henning am 02 Dezember 2019, 20:32:15
Es wird immer wirrer.

Zitat"Example lines for input:"
was ich mit SVG Output bezeichnet habe.
Input ist nicht dasselbe wie Output.

Zitat
Die Ausgabe entspricht aber (bei mir) im Prinzip dem, was ich im Event-Monitor sehe, nur dass ich dann ein paar Stunden warten müsste und nicht die alten Werte sehe.
Das ist mit Sicherheit nicht so. Die "Ausgabe" des Moduls 98_SVG.pm ist SVG, und nicht eine Liste von Events.

Es ist vollkommener Unsinn, jeden Event eines FHEM-Systems in eine einzige Log-Datei zu schreiben und diese hinterher für eine Anzeige zu filtern. Die Filterung kostet bei großen Dateien enorm viel Zeit und ist auf einem Raspberry Pi kaum handhabbar. Genau aus diesem Grund kennt das FileLog-Modul die Angabe eines Regulären Ausdrucks - die Log-Datei sollte von vorneherein nur diejeigen Events enthalten, die man hinterher für die Anzeige benötigt. Wenn man mit Regulären Ausdrücken auf Kriegsfuß steht (siehe auch https://regex101.com/), sollte man wenigstens die Schaltfläche "Create/Modify Device" im Event-Monitor benutzen, um seine Log-Dateien zu erstellen.

LG

pah
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 20:37:06
Zitat von: ThomasFh am 02 Dezember 2019, 19:11:27
Ich kapiere leider nicht, warum ich ein WS300 in der Regex eingeben soll, obwohl der String "WS300" in den FileLogs nie auftaucht.
Hab ich doch kapiert und mein Beispiel schon vor einigen Posts geändert!?

Warum führst Du nicht meine Bitte aus?
list TYPE=WS300

Warum probierst Du nicht mein Beispiel?

Denk an die Linsen von Aschenputtel: Wenn Du alles loggst und dann aus diesem Wust die Plots filtern musst hättest Du mit Zettel und Stift auch ganz schön zu tun. FHEM und dem raspi geht es nicht anders. Deswegen wollen mir nicht ungefiltert alles übertragen (.*) und nicht ungefiltert alles doppelt und dreifach loggen (.*)

Gruß Otto
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 20:41:32
list TYPE=WS300

A1
A2
A3
A4
A5
A6
A7
A8
A9
WS300Device

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 20:46:44
Ok also wie schon vermutet: Deine Geräte heissen A1 usw.
Was ergibt denn nun mein Code aus Post #28 ? Der sollte doch exakt 3 Geräte jeweils eine Zeile auf dem Zielrechner loggen?
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 20:53:26
Zitat von: Otto123 am 02 Dezember 2019, 20:46:44
Ok also wie schon vermutet: Deine Geräte heissen A1 usw.
Was ergibt denn nun mein Code aus Post #28 ? Der sollte doch exakt 3 Geräte jeweils eine Zeile auf dem Zielrechner loggen?

ja, ich bin nicht so schnell beim Schreiben ..

Zitat von: Otto123 am 02 Dezember 2019, 20:37:06
Warum probierst Du nicht mein Beispiel?

Gruß Otto


define FileLog_WS300_F2F FileLog ./log/FileLog_WS300_F2F-%Y.log A1:.*|A2:.*|A3:.*|A4:.*|A5:.*|A6:.*|A7:.*|A8:.*|A9:.*


Dein Beispiel klappt, dass ist klar, ich habe aber statt A1:T:.*  ein  A1:.*
weil ich Temperatur, Luftfeuchte und LR logge.

was nicht geht, ist

define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1|A2|A3
#bei mir habe ich
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1|A2|A3|A4|A5|A6|A7|A8|A9


Dann ist im Event Monitor auf dem DebianFhemVM1 komplette Funkstille.
D.h., es kommen gar keine Events mehr an, auch nicht die Events der Sensoren alle 5 Min,
so dass ich erstmal wieder auf
LOG:.*
gehen muss.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 21:14:25
Du wärst schneller wenn Du nicht immer 10 mal den gleichen Test in eine Zeile hackst sondern an einem Beispiel probierst :)
Es geht Dir doch darum, die Performance zu verbessern? Du verstehst mein Gleichnis mit  Aschenputtel nicht?

Dann versuch doch mal so:
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1.*|A2.*

Ich hätte Dir am 2. Advent verraten, dass Du auch A[1 9].* schreiben kannst. Und das Du regex hier testen kannst https://regex101.com/  ;D Ach hat ja pah schon gemacht ;)

Willst Du später im SVG alle Geräte A1 bis A9 in einem Plot zeigen?
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 21:46:07
Zitat von: Otto123 am 02 Dezember 2019, 21:14:25
Du wärst schneller wenn Du nicht immer 10 mal den gleichen Test in eine Zeile hackst sondern an einem Beispiel probierst :)
Es geht Dir doch darum, die Performance zu verbessern? Du verstehst mein Gleichnis mit  Aschenputtel nicht?

Dann versuch doch mal so:
define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1.*|A2.*

Ich hätte Dir am 2. Advent verraten, dass Du auch A[1 9].* schreiben kannst. Und das Du regex hier testen kannst https://regex101.com/  ;D Ach hat ja pah schon gemacht ;)

Willst Du später im SVG alle Geräte A1 bis A9 in einem Plot zeigen?

Ja,
wie ich aber schon zwei Mal geschrieben, dass ich die Geräte alle später umbenennen werde.
Die heißen dann alle so wie die Räume. Daher schrieb ich schon, dass ich auf die Regex erstmal verzichtet habe.
Daher nutzt mir auch keine Regex, da die Teile dann: WIGA, LAGERRAUM, GWH, GARAGE usw heissen.

Das mit dem A1 .. habe ich nur gemacht, damit ich mich an Dein Beispiel halte.

Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 21:48:03
A1.*|A2.*

probiere ich gleich mal.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 22:03:18
Mein Beispiel war willi :)
Wenn Du Namen wählen kannst, kannst Du auch in regExp "denken"
Meine Rollladen heissen alle RolloXYZ meine Licht Schalter LichtXYZ ...

Deine Sensoren produzieren jeweils 5 Zeilen, 4 einzeln und alle Werte in einer 5.
Ich würde den Log Umfang reduzieren, geht am Besten wenn Du nur die state Zeile loggst, da steht alles drin. Aber dann musst Du beim Plot aus der Zeile wieder alles rausdröseln, das braucht Zeit.
Es geht schneller die einzelnen Werte einer pro Zeile auszulesen.

Wie pah schon sagt ist es auch ungünstig alle Werte in einen Datei zu werfen um sie dann wieder auseinander zu lesen. Ich habe das nicht getestet. Es ist aber für mich vorstellbar, pro Gerät A1 usw. eine Datei zu machen. Dann hast Du im Plot mehrere Dateien parallel offen und die Werte werden jeweils einfach seriell ausgelesen. Das könnte schneller gehen. Wie gesagt: hab ich nie probiert.
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 22:15:14
Zitat von: ThomasFh am 02 Dezember 2019, 21:48:03
A1.*|A2.*

probiere ich gleich mal.

Das klappt:
define F2FRaspi2 FHEM2FHEM Raspi2:7072 LOG:A1.*|A2.*|A3.*|A4.*|A5.*|A6.*|A7.*|A8.*|A9.*
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: ThomasFh am 02 Dezember 2019, 22:24:10
Vorab, Vielen Dank, für alle Tipps, nun läuft es für den Anfang ..

Zitat von: Otto123 am 02 Dezember 2019, 22:03:18
Mein Beispiel war willi :)
Wenn Du Namen wählen kannst, kannst Du auch in regExp "denken"
Meine Rollladen heissen alle RolloXYZ meine Licht Schalter LichtXYZ ...

Deine Sensoren produzieren jeweils 5 Zeilen, 4 einzeln und alle Werte in einer 5.
Ich würde den Log Umfang reduzieren, geht am Besten wenn Du nur die state Zeile loggst, da steht alles drin. Aber dann musst Du beim Plot aus der Zeile wieder alles rausdröseln, das braucht Zeit.
Es geht schneller die einzelnen Werte einer pro Zeile auszulesen.

Wie pah schon sagt ist es auch ungünstig alle Werte in einen Datei zu werfen um sie dann wieder auseinander zu lesen. Ich habe das nicht getestet. Es ist aber für mich vorstellbar, pro Gerät A1 usw. eine Datei zu machen. Dann hast Du im Plot mehrere Dateien parallel offen und die Werte werden jeweils einfach seriell ausgelesen. Das könnte schneller gehen. Wie gesagt: hab ich nie probiert.

Dateimäßig werde ich die Logs ggf. noch auseinander nehmen.

Nochmals danke, ich mache jetzt Schluss, wollte eigentlich nur 1h ..

Falls Du es noch erklären kannst:

warum funktionierte dein erster Ansatz nicht:


define F2FRaspi2 FHEM2FHEM  Raspi2:7072 LOG:A1|A2|A3|A4|A5|A6|A7|A8|A9


und warum funktionert es dann damit


define F2FRaspi2 FHEM2FHEM Raspi2:7072 LOG:A1.*|A2.*|A3.*|A4.*|A5.*|A6.*|A7.*|A8.*|A9.*


Das hier ein .* zusätzlich steht, habe ich gesehen.


Danke ..
Titel: Antw:Log-Daten auf einem zweiten FHEM darstellen und auswerten
Beitrag von: Otto123 am 02 Dezember 2019, 22:37:30
ehrlich gesagt weiß ich es nicht. Ich habe FHEM2FHEM Geräte, da geht genau die Definition mit nur dem Gerätenamen ohne .*