Autor Thema: Schreiben in eine bestehende FileLog Datei  (Gelesen 3984 mal)

Offline ritchie

  • Sr. Member
  • ****
  • Beiträge: 596
Schreiben in eine bestehende FileLog Datei
« am: 29 August 2013, 22:49:15 »
Hallo Zusammen,

derzeit arbeite ich an der Erstellung eine Grafik, welche auch Schaltspiele mit im Trend zeigt.

Bei mir wäre das Brenner, Umwälzpumpe  mit ein/aus (0/1) als Rechteck.

Hier schon mal der Teil, welche in die LogDatei schreibt. Die entsprechende Trigger Routine ist noch im Test,
da ich derzeit das Signal nicht simulieren kann, warte ich immer, bis morgens die Heizung kurz anspringt.

#
# Append a line of data at the given file name
#
# Sample of call : MyFileLog("/media/usbstick/log/klHeizungTemperatur-%Y.log","klHeizungRuecklaufTemperatur","temperature","99.0")
#
sub MyFileLog($$$$)
{
my $LogFileName = shift;
my $Tagname = shift;
my $ReadingName = shift;
my $Value = shift;
my $Fname = "";

my $dt = strftime("%Y-%m-%d %H:%M:%S", localtime(time));
$Fname = strftime($LogFileName, localtime(time));
open(my $fd, ">>".$Fname);
print $fd "".$dt." ".$Tagname." ".$ReadingName.": ".$Value."\x0D\x0A";
close($fd);
}


Vielleicht kann das ja schon jemand gebrauchen.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv
Raspberry PI (1Wire - USB) - Testsystem

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21304
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #1 am: 29 August 2013, 23:02:49 »
warum nimmst du nicht das ganz normalen filelog?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline ritchie

  • Sr. Member
  • ****
  • Beiträge: 596
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #2 am: 29 August 2013, 23:11:10 »
Hi,

weil ich ein Rechteck erzeugen will.

Logge ich nur die reine Statusmeldung, bekomme ich einen SägeZahn Graph, da ich nicht die ganze Zeit
Werte in die Datei schreibe, sondern nur, wenn der Status sich geändert hat.

Damit hier ein Rechteck daraus wird, schreibe ich nochmals den alten Wert in die Datei, damit bis zu diesem
Zeitpunkt der alte Status im Trend korrekt dargestellt wird.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv
Raspberry PI (1Wire - USB) - Testsystem

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 21304
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #3 am: 30 August 2013, 09:13:05 »
und das geht nicht wenn du steps oder histeps linientyp verwendest?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, …

https://github.com/sponsors/justme-1968

Offline ritchie

  • Sr. Member
  • ****
  • Beiträge: 596
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #4 am: 31 August 2013, 00:44:32 »
Habe ich noch nicht ausprobiert.
mache ich dann wohl mal morgen auch noch.

Danke für den Tip.

P.S:
hier ist noch ein kleiner Bug

my $dt = strftime("%Y-%m-%d_%H:%M:%S", localtime(time));


Das "_" fehlte an dieser Stelle.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv
Raspberry PI (1Wire - USB) - Testsystem

Offline ritchie

  • Sr. Member
  • ****
  • Beiträge: 596
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #5 am: 01 September 2013, 12:02:31 »
Hallo Justme1964

grundsätzlich scheint das Linienattribute steps oder histeps ja zu arbeiten.

Wenn ich aber anfange zu zoomen, wird der Schaltpunkt mit meiner Variante noch korrekt
dargestellt, aber mit steps sehe ich hier keinen korrekte Darstellung.
Vermutlich wird im aktuellen Trend bei steps nur die vorhandene Impulsinformation verwendet.

Vorteil dieser Version: Keine Zusätzliche Routine notwendig

Nachteil meiner Methode:
Solange die Pumpe nicht ausschaltet, sehe ich nur einen Impulsespitze (auch nur beim Zoomen)
Vielleicht mache ich bei meiner Methode noch jede Stunde einen Stützpunkt für die Grafik.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv
Raspberry PI (1Wire - USB) - Testsystem

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #6 am: 01 September 2013, 15:42:41 »
Hallo,

schonmal mit addLog versucht?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline ritchie

  • Sr. Member
  • ****
  • Beiträge: 596
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #7 am: 01 September 2013, 20:12:32 »
Hi,

"addLog" finde ich nicht auf der "CommandRef" Seite ?

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv
Raspberry PI (1Wire - USB) - Testsystem

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #8 am: 01 September 2013, 20:26:07 »
Hallo,

stimmt, habe ich auch grad vergeblich gesucht.

addLog kannst du definieren:

define a_midnight1 at *23:59 trigger addLog

wird dadurch täglich um 23:59 ausgeführt.
Dazu gehört dann natürlich noch:

define addLog notify addLog {addLog("Keller_Gaestezimmer_Heizung","desired-temp");;;;addLog("EG_Eingang_Heizung","desired-temp")}


In das notify packst du alle Devices die einen zusätzlich Logeintrag erhalten sollen.
Dieser wird dann mit
Zitat
<< addLog
markiert.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18225
  • Stoppt den Unicode-Irrsinn!
Aw: Schreiben in eine bestehende FileLog Datei
« Antwort #9 am: 01 September 2013, 21:36:28 »
Zitat von: Puschel74 schrieb am So, 01 September 2013 20:26
stimmt, habe ich auch grad vergeblich gesucht.


addLog ist keine Standardfunktion in fhem. Sie muss z.B. in 99_myUtils.pm definiert werden. Beschreibung findet sich im Wiki.

http://www.fhemwiki.de/wiki/Plot-Abriss_vermeiden
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!