Hallo, CW2 hat für den PIUSV einen neuen PiUSV Monitor (Debian-Package) 02.06.2014 v1.2 herausgebracht in dem jetzt der LOG entsprechend angepasst wurde.
23:40:32 2014-06-15 PRI_POW BAT_LOW
23:41:21 2014-06-15 PRI_POW BAT_LOW
16:19:06 2014-06-16 PRI_POW BAT_LOW
19:45:40 2014-06-16 PRI_POW BAT_LOW
Meine Frage ist jetzt wie ich immer den neusten Logeintrag als Reading oder Sate in FHEM anzeigen lassen kann? Ich könnte mir vorstellen das ganze dann als Readings an einen Dummy zu übergeben und dann mit Readingroup anzeigen lassen.
Gruß
cerberus
Ich mal wieder. Hat jemand eine TIPP wie ich die Werte aus dem LOG im oberen Beitrag, also z.B. PRI_POW und BAT_LOW parsen kann und z.B. dann einem Dummy als State übergebe. Ich habe schon mal im Forum geschaut und bin auf diesen Beitrag gestoßen.
http://forum.fhem.de/index.php/topic,6483.msg27136.html#msg27136 (http://forum.fhem.de/index.php/topic,6483.msg27136.html#msg27136)
Ich weiß jedoch nicht wie das mit Perl genau funktioniert und würde gern wissen wie ich diesen Code auf meinen Fall anwenden kann. Wie sage ich mit Perl das ich aus der letzte Zeile im LOG den Wert der Spalte 3 und 4 per notify übergebe?
Gruß
cerberus
Hallo zusammen,
ich habe es bis jetzt nicht geschafft die Logdatei so umzubiegen
das es FHEM einbinden kann.
2016-02-17 21:05:58 [DEBUG] Current Status: 9
2016-02-17 21:05:58 [DEBUG] U: 3763mV, I: 407.8mA
2016-02-17 21:05:59 [DEBUG] Current Status: 9
2016-02-17 21:05:59 [DEBUG] U: 3763mV, I: 409mA
2016-02-17 21:05:59 [DEBUG] Current Status: 9
2016-02-17 21:05:59 [DEBUG] U: 3763mV, I: 409mA
Habe Versucht mit Polling zu lösen. Aber leider komme uch nicht auf die aktuelle Werte.
Mir würde reichen alle 30 sec die Werte aus der Datei auszulesen.
Gruß Gerd
Hallo zusammen,
habe eine fast Lösung
- Log angelegt in FHEM
- Orginale Log datei gelöscht
- Systemlink von der Logdatei von der USV mit der orginal FHEM log
-Nun lasse ich über einen Cron Job ein Python Script laufen
Nicht schon aber es funktioniert.
logFile = r'testLog.log'
out = []
with open(logFile, 'r') as f:
in_lines = f.readlines()
for line in in_lines:
line = list(line)
if len(line) > 10:
line[10] = '_'
out.append(''.join(line))
with open(logFile, 'w') as f:
f.writelines(out)
Nur mal Ideen als Stichworte:
- pipe d.h. anstatt des Logfiles schreibt deine USV-Software in eine pipe, welche von einem anderen proggi ausgewertet wird
(Stichwort mkfifo)
- es gibt möglichkeiten, sich bei Änderungen einer Datei benachrichten zu lassen
(Stichwort inotify, dnotify)
Nur mal so "in den Raum" geworfen ...
Hey,
Ja das stimmt. Werde mich mal damit auseinander setzen.
Evtl. Komm ich auch zu einen Ergebnis.
Die SW von der USV schreibt pro sec in die Datei.
Leider ist der Source Code noch nicht verfügbar.
Da die Infos Grafik ja nicht Sekunden genau sein muss.
Reicht es wenn ein Script die Datei einfach etwas manipuliert.
Damit man eine schöne SVG machen kann. ;D
Perl soll das ja noch schneller können. Dabei bin ich zu keinen funktionierendem Ergebnis gekommen.
Eigentlich gehört ja nur die 10 Stelle (Leerzeichen) in einen unterstrich ersetzt werden. Und schon ist das Logfile FHEM kompatibel.
Gruß Gerd
Hi,
hast du mittlerweile ein Lösung gefunden ?