Hallo zusammen,
ich unternehme gerade die ersten Schritte mit FHEM auf der Fritzbox 7390 mit RFXTRX433. Schalten von Steckdosen funktioniert gut.
Nun habe ich mir einige OREGON-Sensoren angeschafft, die ich auch erfolgreich auslesen und plotten lassen kann.
Nun zu meiner Frage: Da bei zweien dieser Sensoren (Temp/Hum) eine lineare Abweichung um einen absoluten Betrag sowohl bei der Temperatur als auch bei der Luftfeuchte besteht, würde ich gerne diese Werte korrigieren und erst dann ins Logfile schreiben. Nach vergeblichem Probieren und erfolglosem Suchen hier im Forum komme ich einfach nicht weiter.
Momentan korrigiere ich die Werte erst beim Plot, hätte aber lieber das Logfile entsprechend geändert. Wie mache ich das?
Vielen Dank für Eure Hilfe.
Hallo und herzlich willkommen im Forum!
Du könntest z.B. ein "userReadings" mit dem entspr. Offset erzeugen. Dann loggst du anstelle des Originalwertes oder zusätzlich dieses userReadings. Theoretisch lässt sich damit sogar eine nichtlineare Abweichung berechnen.
Das könnte (ungetestet) so aussehen, wenn die Temp. von "Sensor_A" 2,5 k nach unten abweicht:
define Sensor_A CUL_WS 6
attr Sensor_A userReadings temp_A {ReadingsVal("Sensor_A", "temperature", "0")+2.5;;}
Viele Grüße
Frank
Edit: Habs schnell mal bei mir getestet und funktioniert so. ;o)
Vielen Dank für die schnelle Hilfe!
Der Code funktioniert soweit, jedoch wird der korrigierte Wert 'temp_A' zusätzlich zum Werte 'temperature' gelogt. Kann ich den ursprünglichen Wert 'temperature' denn durch 'temp_A' ersetzen? Also nach folgender Art:
vorher:
2013-07-10_13:05:02 RTGR328_3 temperature: 23.5
2013-07-10_13:05:02 RTGR328_3 humidity: 51
2013-07-10_13:05:02 RTGR328_3 temp_A: 26
2013-07-10_13:05:02 RTGR328_3 dewpoint: 12.8
nachher:
2013-07-10_13:05:02 RTGR328_3 temperature: 26
2013-07-10_13:05:02 RTGR328_3 humidity: 51
2013-07-10_13:05:02 RTGR328_3 dewpoint: 12.8
Irgendwie fehlt mir noch der Durchblick...
Der temperature Wert stört doch beim Plotten überhaupt nicht? Du musst halt nur in Deiner Plot-Definition den Temp_A für die Temperaturkurve auswählen.
Ja, der Plot ist nicht das Problem. Der Wert stört im Log zwar nicht, bläht das File jedoch natürlich unnötig auf.
In der room-Ansicht sehe ich aber nach wie vor den originalen Wert.
Ist dieser angezeigte Wert immer der letzte gelesene direkt vom Sensor, oder ist es der letzte geschriebene aus dem Logfile?
Zitat von: netwalk schrieb am Mi, 10 Juli 2013 14:44Ist dieser angezeigte Wert immer der letzte gelesene direkt vom Sensor, oder ist es der letzte geschriebene aus dem Logfile?
Da im floorplan auch Werte stehen, wenn es gar kein Logfile zum Sensor gibt, wird das vermutlich der letzte Wert sein, der vom Sensor an FHEM gemeldet und dort registriert wurde. Es ist ja nicht zwingend notwendig, überhaupt ein Logfile zu einem Sensor anzulegen, um seine Messwerte verwenden zu können.
was du in der raumübersicht und dem floorplan siehst ist der state des device. das was hier als default verwendet wird gibt der modulautor vor. da er nichts von deinem korrigierten wert weiß ist das natürlich das original reading. wenn du etwas anderes dort sehen möchtest musst du das mit stateFormat überschreiben.
welche werte im logfile oder db landen gibst du selber an. wenn du nicht alles haben möchtest musst du das entsprechend konfigurieren.
gruss
andre
Vielen Dank,
es hat funktioniert, sowohl im Log, als auch im State.