Logdatei ist falsch :)
Entweder notify oder at mit ReadingsVal().
Siehe auch http://fhem.de/commandref.html#perl
Das meine ich ja. Nicht regelmaessig die Datei einlesen, und bestimmte Werte
suchen, sondern mit einem notify direkt auf die Nachricht reagieren.
So aehnlich:
define temp_ntfy notfy Kamin:T:.* {\
if(%EVTPART1 > 30 &&\
ReadingsVal("FHT", "desired-temp", 5.5) ne 5.5) {\
fhem("set FHT desired-temp 5.5");;\
}
}
Bitte wirklich die Doku lesen, versuchen zu verstehen, das alles steht zwar
nicht direkt so, aber drin. Und wenn man unsicher ist, auf der Telnet Zeile mit
irgendwelchen Ausdrucken direkt experimentieren, z.Bsp.:
fhem> { ReadingsVal("FHT", "desired-temp", 5.5) ne 5.5) }
bzw. in das notify Log Meldungen einbauen, und via trigger testen:
define temp_ntfy notfy Kamin:T:.* {\
Log 1, "EVTPART1: %EVTPART1";
Log 1, ReadingsVal("FHT", "desired-temp", 5.5);
if(%EVTPART1 > 30 &&\
ReadingsVal("FHT", "desired-temp", 5.5) ne 5.5) {\
fhem("set FHT desired-temp 5.5");;\
}
}
fhem> trigger Kamin T: 35
Ich schalte zwar keine Heizung mit Digitemp, aber ich verwende Digitemp
direkt mit einer selbgebastelten Schnittstelle (OWFS zu installieren war
mir zu kompliziert und mit perl den aktuellen Wert auslesen ist nicht
mein Ding).
Die Logdaten verwende ich um damit einen Graphen in/mit zu erstellen.
Den letzen Datensatz mit der aktuellen Temperatur hole ich mir mit
"php". Aus diesem Temperaturwert und anderen Digitemp.- bzw.
FHT80b-werten erstelle ich wieder mit "php" ein Bild welches ich auf
meine Fritzbox �bertrage und im Fritz!Fon als Hintergrundbild anzeigen
lasse.
Alles l�uft auf einem Dockstar und wird mittels cronjob ausgef�hrt.
Wenn Du den Wert hast
Vielleicht ein Tip, denn viele Umwege fuehren nach ...
Reinhard
Ich habe gehofft, dass jemand anderes das schon beantwortet, da es "standard
fhem knowhow" ist, es traut sich aber keiner. Da ich auf lange Sicht nicht
alles selber beantworten will, muss ich mir irgendeine Strategie ueberlegen,
wie ich das hinkriege. Vorschlaege?
Wenn ich es richtig verstehe, Du moechtest die Logs parsen, die mit einem
FileLog geschrieben wurden, das ist aber unnoetig und man sollte es nicht so
machen.
FileLog kriegt seine Information auch nur ueber die gleichen Events, die man
per notify anzapfen kann. Man schaut also eine weile lang im telnet mit
aktivierten "inform timer" zu, welche Events vorbeikommen, und man baut dazu
ein notify, der das Schalten uebernimt. Vorteil: sofortige Reaktion und weniger
Systemlast.
Eine kleine Einfuehrung dazu ist auch in http://fhem.de/commandref.html#perl,
weitere CodeSchnipsel sind in der fhemwiki.
Aah. Dann hilft nix, man muss pollen:
define checkKamin at +*00:01 { \
my @a = split(" ", `tail -1 /mnt/nas/log/K_temp.log`);;
if($a[2] > 30 &&\
}\
}