Hallo,
meine Temperatursensoren (DS1820) geben bis zu 3 Nachkommastellen aus, sodass ins Logfile auch unnötig viele Daten geschrieben werden.
z.B.:
2014-11-09_21:47:56 GPIO4_DS1820_000801ff922b T: 23
2014-11-09_21:47:57 GPIO4_DS1820_000801ff7e6f T: 30.187
2014-11-09_21:48:58 GPIO4_DS1820_000801ff7e6f T: 30.19
2014-11-09_21:49:59 GPIO4_DS1820_000801ff7e6f T: 30.187
define Puffer_Test_Log FileLog ./log/Puffer_Test-%Y.log (GPIO4_DS1820_000801ff7e6f|GPIO4_DS1820_000801ff922b):T:(\s*-{0,1}\d+\.\d)|(\s*-{0,1}\d+)$
Im define habe ich schon versucht auf max. eine Nachkommastelle abzuschneiden. Das funktioniert aber leider nicht. Besser wäre es auf eine Nachkommastelle zu runden. Wie geht das?
Gruß
optizmizer
geloggt wird, was im Event steht.
Was Du als Workaround probieren kannst: ein userreading definieren, das Du formatieren kannst, wie Du möchtest und dann nur das userreading loggen.
userReadings war das Stichwort:
Beim Temperatursensor-Reading habe ich Temp1 neu eingefügt:
attr GPIO4_DS1820_000801ff7e6f userReadings Temp1 { sprintf("%.1f", ReadingsVal("$name","temperature",0)) }
attr GPIO4_DS1820_000801ff7e6f event-on-change-reading Temp1
Zum Erstellen eines Filelog mit einer Nachkommastelle:
define Puffer_VLRL_Log FileLog ./log/Puffer_VLRL-%Y-%m.log (GPIO4_DS1820_000801ff7e6f|GPIO4_DS1820_000801ff922b):.*Temp1.*
Danke und Gruß
optimizer
Moin,
mit diesen Werten werden meine Tempsensoren mit einer Nachkommastelle ins Log geschrieben:
define Pool GPIO4 28-000001234567
attr Pool model DS18B20
attr Pool pollingInterval 3600
define FileLog_Pool FileLog ./log/Pool-%Y-%m.log Pool:temperature:.*
attr FileLog_Pool fm_type [{"title":"Measured temperature","id":"graph-temp","min":"auto:0","max":"auto:20","col":"a80000","h":2}]
attr FileLog_Pool logtype temp4,text
2014-11-13_06:10:10 Pool temperature: 8.0
2014-11-13_07:10:11 Pool temperature: 7.9
2014-11-13_07:46:40 Pool temperature: 7.9
2014-11-13_08:46:42 Pool temperature: 7.9
2014-11-13_09:46:44 Pool temperature: 7.9
2014-11-13_10:19:12 Pool temperature: 8.2