Ich überlege gerade ob es möglich ist in FileLog einen min. Wert anzugeben um nur Werte zu loggen die über diesem Wert liegen. Hintergrund ist das ich über einen Differenztemperatursensor die Sonneneinstrahlung auswerte, jedoch springt der delta t Wert, ohne Sonne (Nacht), immer zwischen 0 und 0.2. Oder sollte ich im Reading des Sensors erst loggen wenn der Wert über 0.2 liegt, dann fehlt aber 0. Irgendwie sehe ich den richtigen Ansatz nicht.
Vlt. kann mich da jemand erhellen?
VG
Frank
Hab´s jetzt in der Sub ausgefiltert.
sub Sonne_abs
{
my $sonabs = ReadingsVal("Diff_Sensor_Sonne_T1_T2","temperature",0);
my $sabs = abs($sonabs);
if( $sabs > 0.5 ) {
fhem "setreading Sonne_Temp_abs temperature $sabs"
} else {
fhem "setreading Sonne_Temp_abs temperature 0"
}
}
VG
Frank
Mir faellt folgendes ein:
- in der SVG-Anzeige per Funktion runden (int)
- in der SVG-Anzeige per Funktion alles was kleiner als 0.5 ist, als 0 anzuzeigen ($fld[N]<0.5?0:$fld[N]).
- in FileLog per Regexp nur "richtige" Werte durchlassen. Ist eher was fuer erfahrene Bastler.
- userReadings Attribut mit Pruefung, und mit FileLog diese Readings loggen.
- notify mit Pruefung+Reading erzeugen und mit FileLog das neue Reading loggen. Dein "Sub" scheint diesen Weg zu gehen.
- event-on-change-reading mit Threshold. Bin nicht sicher, ob das funktioniert.
Dann ließe sich auch eine Trendlinie ermitteln sowie Mean und AVG
Gesendet von meinem Nexus 5 mit Tapatalk