Hallo zusammen,
Ich habe erfolgreich meinen 1-Wire-Bus in Betrieb genommen. Nun baue ich am Filelog für meinen Luftfeuchtesensor und habe da ein Problem.
Aber erst einmal die Definitionen:#1-Wire-System
define localOWServer OWServer localhost:4304
#Luftfeuchtesensor
define W_HUM_TERRA OWMULTI DS2438 07738D010000 60
attr W_HUM_TERRA IODev localOWServer
attr W_HUM_TERRA VFunction (161.29 * V / VDD - 25.8065)/(1.0546 - 0.00216 * T)
attr W_HUM_TERRA VName relLuftfeuchte
attr W_HUM_TERRA VUnit percent|%
attr W_HUM_TERRA model DS2438
attr W_HUM_TERRA room Terrarium
# FileLog Definition
define FileLog_Terrarium FileLog ./log/Terrarium-%Y-%m.log W_HUM_TERRA:rel.*
attr FileLog_Terrarium icon icoLog
attr FileLog_Terrarium nrarchive 12
attr FileLog_Terrarium room Logfiles
Nun war ich so stolz auf mich, dass ich das alles hinbekommen - bis ich in das Log-Fiele schaute:2015-05-14_18:49:39 W_HUM_TERRA relLuftfeuchte: 51.557
2015-05-14_18:49:39 W_HUM_TERRA relLuftfeuchte: 51.56 % (T: 16.94 °C)
2015-05-14_18:50:39 W_HUM_TERRA relLuftfeuchte: 51.557
2015-05-14_18:50:39 W_HUM_TERRA relLuftfeuchte: 51.56 % (T: 16.94 °C)
OK, grundsätzlich verstehe ich das, da das Reading 'relLuftfeuchte' ebenso den Suchstring enthält, wie das Reading 'state'.
Also habe ich mal ganz naiv versucht, auf den Zeilenanfang zu suchen:# FileLog Definition
define FileLog_Terrarium FileLog ./log/Terrarium-%Y-%m.log W_HUM_TERRA:^rel.*
attr FileLog_Terrarium icon icoLog
attr FileLog_Terrarium nrarchive 12
attr FileLog_Terrarium room Logfiles
Mit durchschlagendem Erfolg - nun habe ich keine Einträge mehr im Log :(
Wie definiere ich das besser?
doppelte Grüße
Niels
Die Prüfung auf das String-Ende hat mich zum Erfolg geführt:
# FileLog Definition
define FileLog_Terrarium FileLog ./log/Terrarium-%Y-%m.log W_HUM_TERRA:rel.*\d+\.*\d*$
attr FileLog_Terrarium icon icoLog
attr FileLog_Terrarium nrarchive 12
attr FileLog_Terrarium room Logfiles
gelöste Grüße
Niels
Erst einmal möchte ich vorschlagen, nicht jede selbst gelöste Frage hier zu posten, sondern das Nachdenken vor das erste Posten zu legen.
Zweitens hätte es vollkommen ausgereicht, in den regulären Ausdruck einen Buchstaben aufzunehmen, der in der reinen Luftfeuchteangabe nicht auftaucht, also z.B. rel.*T.*
Drittens sollte man vielleicht mal die aktuelle Modulversion von OWMULTI verwenden und die Commandref dazu lesen. da ist es nämlich ganz einfach möglich, die Strings für die Einzelangabe und die Sammelangabe in "state" unterschiedlich zu wählen.
LG
pah
Moin & Danke für die Antwort,
Zitat von: Prof. Dr. Peter Henning am 15 Mai 2015, 06:12:28
Erst einmal möchte ich vorschlagen, nicht jede selbst gelöste Frage hier zu posten, sondern das Nachdenken vor das erste Posten zu legen.
Dieser Meinung bin ich auch und habe schon versucht, die Sache selber in den Griff zu bekommen, wie mein Eingangspost aus meiner Sicht zeigt. Jedoch sind meine Fähigkeiten hier ausbaufähig, weshalb ich die Frage ja auch in den Anfängerfragen gestellt habe, welche sogar den Untertitel 'Jeder fängt mal an' tragen...
Zitat von: Prof. Dr. Peter Henning am 15 Mai 2015, 06:12:28Zweitens hätte es vollkommen ausgereicht, in den regulären Ausdruck einen Buchstaben aufzunehmen, der in der reinen Luftfeuchteangabe nicht auftaucht, also z.B. rel.*T.*
Was aber doch bedeuten würde, dass das Reading 'state' geloggt würde und nicht das Reading 'relLuftfeuchte', oder sehe ich das falsch?
Zitat von: Prof. Dr. Peter Henning am 15 Mai 2015, 06:12:28Drittens sollte man vielleicht mal die aktuelle Modulversion von OWMULTI verwenden und die Commandref dazu lesen. da ist es nämlich ganz einfach möglich, die Strings für die Einzelangabe und die Sammelangabe in "state" unterschiedlich zu wählen.
Das ist interessant. Ich habe mich hier an's Wiki gehalten, werde nun aber mal suchen, wo ich was zu der aktuellen Modulversion finde...
ausbaufähige Grüße
Niels
Oh je ::)
DICKER LINK AUF DER LINKEN SEITE: "Commandref"
pah
Jo, das ist bekannt - ändert ja aber nichts an der Modulversion. Die bekomme ich ja IMHO mit dem FHEM ausgeliefert - hier war ich verwundert, wie(so) ich nun ein Modul aktualisieren soll....
aktuelle Grüße
Niels
Und die verwendete Modulversion lautet bitte - wie ?
LG
pah
# $Id: 21_OWMULTI.pm 8513 2015-05-02 03:52:59Z pahenning $
kurze Grüße
Niels