Doppeleinträge in Log-Datei von 1-Wire Sensoren

Begonnen von oboa, 09 Januar 2013, 20:05:53

Vorheriges Thema - Nächstes Thema

oboa

Hallo,

ich teste gerade 1-Wire an der FB7390. Über einen USB9097 Adapter sind ein DS1820 und DS18B20 parasitär angeschlossen und liefern korrekte Werte.

die Definition des Log sieht so aus:
define FileLog_1wire_Temp FileLog ./log/1wire_Temp-%Y-%m.log (OWX_10_FD0B4D020800:.*temperature:).*|(OWX_28_578D00020000:.*temperature:).*
attr FileLog_1wire_Temp logtype text
attr FileLog_1wire_Temp room OWX


Das Problem ist nun das Ergebnis im Log - zwei fast gleiche Einträge zu jedem Sensor:

2013-01-09_20:00:35 OWX_10_FD0B4D020800 temperature: 55.0625
2013-01-09_20:00:35 OWX_10_FD0B4D020800 temperature: 55.06 °C
2013-01-09_20:00:36 OWX_28_578D00020000 temperature: 47.625
2013-01-09_20:00:36 OWX_28_578D00020000 temperature: 47.63 °C

So wird das Log unnötig groß und unübersichtlich. Hat jemand einen Hinweis wie ich die Einträge minimieren kann?
Raspi mit CUL, FS20ST, FS20KSE , S300TH , OZW672, (DS1820 , DS18B20)

oboa

Nachtrag zum Thema.

Da mit dem Problem anscheinend niemand etas anfangen kann, möchte ich ein wenig weiter ausholen.

Der ursprüngliche Eintrag in der fhem.cfg zum gemeinsamen loggen der Sensoren sah so aus:
define FileLog_1wire_Temp FileLog ./log/1wire_Temp-%Y-%m.log OWX_10_FD0B4D020800|OWX_28_578D00020000
attr FileLog_1wire_Temp logtype text
attr FileLog_1wire_Temp room OWX

und lieferte folgende Einträge in der Log-Datei:
2013-01-08_20:15:53 OWX_28_578D00020000 temperature: 47.375
2013-01-08_20:15:53 OWX_28_578D00020000 tempLow: 35
2013-01-08_20:15:53 OWX_28_578D00020000 tempHigh: 75
2013-01-08_20:15:53 OWX_28_578D00020000 temperature: 47.38 °C
2013-01-08_20:15:54 OWX_10_FD0B4D020800 temperature: 39.8125
2013-01-08_20:15:54 OWX_10_FD0B4D020800 tempLow: 20
2013-01-08_20:15:54 OWX_10_FD0B4D020800 tempHigh: 85
2013-01-08_20:15:54 OWX_10_FD0B4D020800 temperature: 39.81 °C

die Änderung auf define FileLog_1wire_Temp FileLog ./log/1wire_Temp-%Y-%m.log (OWX_10_FD0B4D020800:.*temperature:).*|(OWX_28_578D00020000:.*temperature:).*
bewirkte, dass nur noch die Zeilen mit "temperature" geloggt werden. Aber das ist immer noch ein Entrag zu viel (siehe oben).
Was müßte ich in die define Anweisung schreiben um nur noch eine Zeile pro Sensor zu erhalten?
Raspi mit CUL, FS20ST, FS20KSE , S300TH , OZW672, (DS1820 , DS18B20)

Vorhand

Hallo,

es gibt eine Lösung von pah unter 1wire.
Trage statt *.temperatur nur *.C ein und es gibt nur eine Zeile im Log.

Gruß
Klaus
Viele Grüße
Raspi,Homatic,ESP,Fronius,KIA-PHEV,DHW300,Mi,Shelly

oboa

Danke Klaus,

der Hinweis hat mich auf den richtigen Weg geführt.
define FileLog_1wire_Temp FileLog ./log/1wire_Temp-%Y-%m.log (OWX_10_FD0B4D020800:.*C).*|(OWX_28_578D00020000:.*C).*
Aber nicht *.C sondern. *C war die Lösung. Jetzt kommt pro Sensor nur noch eine Zeile ins Log, so soll es sein.

Mfg oboa
Raspi mit CUL, FS20ST, FS20KSE , S300TH , OZW672, (DS1820 , DS18B20)

Martin

Hallo habe da immer noch Doppelte Log Einträge was ist da falsch kann einer Helfen Bitte??
define Keller OWDevice 28.A96257040000 600
attr Keller fp_Grundriss 550,200,4,Keller
attr Keller group 1Wire
attr Keller icon icoTempHausEG
attr Keller model DS18B20
attr Keller room 1Wire
attr Keller stateFormat { sprintf("%.1f°C",ReadingsVal("Keller","temperature",0)) }
define FileLog_Keller FileLog /var/InternerSpeicher/uStor11/Keller/Keller-%Y.log Keller
attr FileLog_Keller logtype temp4:Plot,text:Text
attr FileLog_Keller room 1Wire


Gruß
Martin

Reinerlein

Hi Martin,

ich habe das bei mir auch.

Ich habe das erstmal kurzfristig durch folgenden regulären Ausdruck beim FileLog gelöst:
OWTemperaturDevice:temperature:.*?\d+[\.\d]*$

Damit wird nur der Eintrag geloggt, der hinter Temperature eine Zahl und dann nix mehr (also auch kein Alarm o.ä.) hat.

Damit habe ich erstmal das Problem eingedämmt.

Grüße Reinerlein

Martin

ja und kannst du mir auch Bitte sagen wo ich das bei mir einbauen muss




Gruß
Martin

Reinerlein

Hi Martin,

sorry, kein Problem.

Das ist beim FileLog der Ausdruck, der entscheidet, was alles in das Log kommt:
define FileLog_hwr_Temperatur FileLog /etc/fhem/log/hwr_Temperatur-%Y.log hwr_Temperatur:temperature:\s*\d+[\.\d]*$Natürlich als Einzeiler...

Das definiert ein FileLog, welches vom OWDevice mit dem Namen "hwr_Temperatur" nur den Eintrag mit der Temperatur ins Log läßt. Keine anderen, also auch nicht die, die noch das Wort Alarm dahinter haben.

Ich habe den Ausdruck übrigens noch etwas angepasst. Bei mir kamen noch ab und zu Zahlen ohne Nachkommastellen vor, die dann auch nicht im Log landeten. Das klappt jetzt auch....

Grüße Reinerlein

Reinerlein

Hi nochmal,

in dem regulären Ausdruck ist noch ein Fehler, der sich gerade bei einem meiner Sensoren bemerkbar gemacht hat: Negative Temperaturen kamen nicht durch :-)

Hier also die korrigierte Zeile von oben:
define FileLog_hwr_Temperatur FileLog /etc/fhem/log/hwr_Temperatur-%Y.log hwr_Temperatur:temperature:\s*-{0,1}\d+[\.\d]*$

Grüße Reinerlein

Martin

Super Danke jetzt Logt er wider Richtig keine doppelte Logs mehr.  


Gruß
Martin