Log-Daten auf einem zweiten FHEM darstellen und auswerten

Begonnen von Schlauer Det, 24 September 2019, 18:54:44

Vorheriges Thema - Nächstes Thema

herrmannj

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?"

Schlauer Det


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  :)

ThomasFh

#17
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.
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ThomasFh

#19
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.
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

Otto123

#20
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ThomasFh

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 ..
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

Otto123

#22
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.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ThomasFh

#23
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.
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Prof. Dr. Peter Henning

Außerdem ist das, was hier als "SVG Example Output" hingeschrieben worden ist, kein SVG Code.

LG

pah


ThomasFh

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:

EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

ThomasFh

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.
EM1010PC, EM1000WZ, WS300PC, S300TH, Fritz Dect 200, Victron MPII, Cerbo GX, US3000C

Otto123

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!
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

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 :(
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz