OWDevice - Reading temperature runden

Begonnen von MarkusN, 12 Januar 2014, 16:52:23

Vorheriges Thema - Nächstes Thema

MarkusN

Hallo Gemeinde,

gibt es eine Möglichkeit das Reading temperature zu runden? Ich logge mit event-on-change-reading nur Werte die sich ändern, was aber bei 4 Stellen hinter dem Komma quasi jedes mal der Fall ist. Mir würde eine Stelle nach dem Komma schon reichen. Ich weiß dass ich dafür ein userreading bauen kann, möchte aber das Reading temperature weiterhin loggen.

Hat jemand eine Idee?

Grüße,

Markus

Joachim

attr FS1T userReadings temperature { int ( 10 * ReadingsVal("FS1T","temperature",0) + 0.5 ) / 10 }
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

MarkusN

Hallo Joachim,

danke. Das funktioniert, das reading wird angepasst, jedoch wird es bei jeder Aktualisierung zwei mal gelogged, einmal mit dem originalwert und einmal mit dem gerundeten.

Joachim

Ist mir auch aufgefallen.
Würgaround:
attr FS1T userReadings ANDERERNAME { int ( 10 * ReadingsVal("FS1T","temperature",0) + 0.5 ) / 10 }
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

justme1968

das zwei mal loggen kannst du nicht verhindern wenn das reading den gleichen namen hat. zumindest nicht wenn dich nur der zweite wert interessiert.

schau mal ob dir das attribut resolution weiter hilft.

wenn ja hast du nebenbei noch den vorteil das die messung etwas doppelt so schnell geht.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

MarkusN

Hallo Andre,

das führt leider auch nicht zum gewünschten Ergebnis, der Wert hat weiterhin 4 Stellen hinter dem Komma. Ich habe jetzt ein userreading temperature2 gebaut, welches den entsprechend gerundeten Wert von temperature hat. Habe erst überlegt das zu loggen und dann meine gplots anzupassen, dann würde ich jedoch in den Plots die bisherigen Werte vom reading temperature nicht mehr angezeigt bekommen.

Alles irgendwie nicht so optimal. Klasse wäre es wenn man das Modul 11_OWDevice.pm auf Wunsch per Attribut runden lassen könnte.

Grüße,

Markus

justme1968

bei mir habe ich mit resolution 9 maximal eine und mit resolution 10 maximal zwei nachkomma stellen.

wenn du owhttp laufen hast solltest du das dort auf der seite zu deinem sensor auch sehen. schau mal untern auf dem screenshot.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

MarkusN

Ein wenig Recherche hat ergeben dass offenbar nur der DS18B20 verschiedene resolutions bietet. Bis auf einen Sensor nutze ich jedoch DS18S20. Damit hat sich das dann auch erledigt. Danke trotzdem für die Info!

justme1968

dann sollte aber erst recht nur maximal eine nachkomme stelle gezeigt werden wenn der sensor nicht mehr liefert.

das ist zumindest das was das datasheet sagt. hast du owhttp laufen? was siehst du da?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

MarkusN

Bei mir läuft nur owserver, owget liefert mir folgende Daten:

[biomann@pi:~]$ owget /10.463857020800
/10.463857020800/address
/10.463857020800/alias
/10.463857020800/crc8
/10.463857020800/errata
/10.463857020800/family
/10.463857020800/id
/10.463857020800/locator
/10.463857020800/power
/10.463857020800/r_address
/10.463857020800/r_id
/10.463857020800/r_locator
/10.463857020800/temperature
/10.463857020800/temphigh
/10.463857020800/templow
/10.463857020800/type
[biomann@pi:~]$ owget /10.463857020800/temperature
22.1875%
[biomann@pi:~]$


Wie du siehst bekomme ich direkt von owfs/owserver schon Werte mit 4 Nachkommastellen.

Eventuell musst du in der Codeanzeige runterscrollen um den Wert zu sehen

justme1968

leider nicht zu übersehen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

#11
Plan A:
Plot anpassen auf temperature.*
Plan B
in Quellcode eingreifen (Wenn ich das richtig sehe zwischen Zeile 483 und 484)
$value= int ( 10 * $value + 0.5 ) / 10
ohne Garantie
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Prof. Dr. Peter Henning

#12
Ein paar Dinge müssen etwa korrigiert werden:

1. Die alten DS1820 werden nicht mehr hergestellt, verkauft werden nur noch Restbestände. Ersatzmodell ist der DS18S20.

2. Beim DS1820 wird die Temperaturmessung nur mit 9 Bit bzw. 0,5 Grad Celsius aufgelöst, mit einer Korrekturrechnung kann die Auflösung etwas gesteigert werden. Die Genauigkeit dieser Korrekturrechnung ist aber nicht angegeben. Die gesamte Messung benötigt 500 ms.

3. Beim DS18S20 wird die Temperaturmessung mit 12 Bit bzw 1/16 Grad Celsius aufgelöst, wenn die Auslesung mit einer Korrekturrechnung behandelt wird. Die gesamte Messung benötigt 750 ms.

4. Beim DS18B20 kann die Auflösung der Temperaturmessung zwischen 9 Bit (0,5 Grad Celsius) und  12 Bit (1/16 Grad Celsius) ausgewählt werden. Die Messung mit hoher Auflösung benötigt 750 ms, die Messung mit geringer Auflösung geht schneller.

5. Die drei Typen DS1820,DS18S20 und DS18B20 haben eine angegebene absolute Genauigkeit von 0,5 Grad Celsius.

5. Beim DS1822 wird die Temperaturmessung mit 9 Bit (0,5 Grad Celsius) aufgelöst, diese "Billigversion" misst aber laut Datenblatt nur auf 2 Grad Celsius genau.

6. Ein Vergleich zeigt, dass die absolute Ungenauigkeit in der Messung im Wesentlichen von einem Offset rührt. Alle digitalen Thermometer sollten deshalb kalibriert werden. dann lassen sich auch höhere absolute Genauigkeiten erreichen, siehe diese Wiki-Seite von mir: http://www.fhemwiki.de/wiki/Eichung_von_1-Wire_Temperatursensoren.

Fazit: Wer eine Nachkommastelle Genauigkeit haben möchte, muss sowohl mit 12 Bit Auflösung messen, als auch eine Eichung durchführen.

LG

pah

justme1968

ist das wirklich so oder werden hier wieder auflösung, präzision sowie äußere- und absolute genauigkeit vermischt?

laut datenblatt ist die accuracy immer ±0.5º (jedenfalls zwischen -10ºC und +85ºC, ausserhalb vermutlich schlechter), unabhängig von der auflösung. über die precission sagt das datenblatt nichts.

meint accuray Präzision oder äußere genauigkeit?

das datenblatt sagt auch nirgends das mit 12bit die genauigkeit auf 1/16º steigt sondern nur die auflösung.

meiner meinung nach ist es für normale haushaltsanwendungen völlig ausreichend die 9bit auflösung zu verwenden so fern man die auflösung wählen kann. zumal die messung dann deutlich unter 100ms benötigt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

Ah, touché. Klarheit ist vorhanden, aber in der Niederschrift (es war halt früh am Morgen ...) habe ich genau diese Vermischung wieder vorgenommen.

Jetzt durch Editieren beseitigt und hoffentlich besser formuliert.

Nochmal: Die Genauigkeit ist nach meiner Ansicht durchaus auf 1/10 Grad Celsius zu steigern. Das erfordert aber eine Eichung, weil der absolute Messfehler wesentlich durch einen zufällgen (aber für jedes DS-Device festen) Offset bestimmt wird.

LG

pah


justme1968

#15
die eichung (oder kalibrierung ?) ist sicher zwingend nötig um die absolute genauigkeit zu verbessern.

wenn die ±0.5º aber nicht von der auflösung abhängen reicht aber jeweils eine messung nicht sondern meherere werte müßten geeignet gemittelt werden um tatsächlich die 1/10 grad genauigkeit zu erreichen.

sollte man nicht annehmen das das datenblatt eine bessere (von der auflösung abhängige) genauigkeit nicht extra hervorheben würde?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Prof. Dr. Peter Henning

#16
Spielen wir heiteres Datenblattraten ?

Ich glaube eher an Messungen - und die sagen, dass ich bei einigen Messungen mt dem richtigen konstanten Offset sehr genau auf der tatsächlichen Temperatur liege. Natürlich kann man das systematisieren und eine ganze Messreihe nehmen. Viel Freude dabei !

Der Begriff "Eichung" stammt aus der theoretischen Physik und bezeichnet die Invarianz von Theorien gegenüber der  Addition von konstanten (bei globaler Eichinvarianz) bzw. variablen (bei lokaler Eichinvarianz) Anteilen. Das trifft hier bestens zu - auch wenn im amtlichen Sprachgebrauch "Eichung" Sache der Eichämter ist und deshalb im Amtsdeutsch hier von Kalibrierung zu sprechen wäre. Ich fühle mich der Naturwissenschaft näher als dem Amtsschimmel, sozusagen ... obwohl man natürlich argumentieren könnte, dass die Verwendung von Eiswasser im Rahmen der Gesetze durchaus ein zulässiges amtliches Normal ist.

Ich tippe (rate ?), dass die Genauigkeit bei diesen Wandlern tatsächlich durch die Wertigkeit des niederwertigsten Bits bestimmt wird und für die 20er Modelle typisch +/- 1 digit ist. Nach Ecihung, wohlgemerkt.

LG

pah

justme1968

nö. ich bin nur ganz wirklich daran interessiert woher die genauigkeit von 1/10 grad kommen kann.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Joachim

Moin Prof.,
Klugscheissermodus an:
Eichung?
oder doch eher Kalibrierung.
http://de.wikipedia.org/wiki/Eichung

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Prof. Dr. Peter Henning

Hab ich doch oben erklärt - man kann Eichung als Begriff aus der Physik verwenden.
Oder aus der Sicht des Eichbeamten vom Eichamt, der mit offiziellem Eichnormal durch die Lande reist und Eichmarken verteilt.

LG

pah