Schreiben in eine bestehende FileLog Datei

Begonnen von ritchie, 29 August 2013, 22:49:15

Vorheriges Thema - Nächstes Thema

ritchie

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

justme1968

warum nimmst du nicht das ganz normalen filelog?

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

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

ritchie

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

justme1968

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

ritchie

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

ritchie

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

Puschel74

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.

ritchie

Hi,

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

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

Puschel74

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.

betateilchen

Zitat von: Puschel74 schrieb am So, 01 September 2013 20:26stimmt, 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
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!