2 unterschiedliche Temperaturwerte in einem 1 wire Gerät

Begonnen von maci, 21 März 2017, 20:01:38

Vorheriges Thema - Nächstes Thema

maci

Hallo,

Ich habe einen 1wire Sensor mit einem DS18B20 Sensor und einem HiH 4031 Sensor
Der HiH 4031 gibt auch Temperaturwerte aus.
Somit habe ich 2 unterschiedliche Werte.

Dien Feuchtigkeitswert habe ich mit der Formel aus Beitrag: https://forum.fhem.de/index.php?topic=18961.0 1 Wire Feuchtemessung kein VAD
berechnet und in meine Definition eingefügt.
Bei der Rundung des Temperaturwertes steht ja hier die Formel:
Ich zitiere aus der Formel im letzten Posting der Beitrags:
temperature_T { int ( 10 * ReadingsVal("FS1_T","temperature",0) + 0.5 ) / 10 }

Ich habe dies nun umgeschrieben mit meinem Namen und hätte die Formel so erweitert:
temperature_T { int ( 10 * ((ReadingsVal("Wohnzimmer_temp2","temperature",0) + ReadingsVal("Wohnzimmer_temp1","temperature",0)) / 2) + 0.5 ) / 10 }
Ich will also die Werte aus Fühler *_temp1 und *_temp2 zusammenzählen und dann durch 2 dividieren.
Doch FHEM mag meine Formel nicht.
Im Log steht folgendes:
2017.03.21 19:36:21 1: Error evaluating Wohnzimmer_temp2 userReading temperature_T: Can't find string terminator '"' anywhere before EOF at (eval 526) line 1.

2017.03.21 19:36:21 1: PERL WARNING: Argument "Error evaluating Wohnzimmer_temp2 userReading temperatur..." isn't numeric in sprintf at (eval 527) line 1.
2017.03.21 19:37:23 1: Error evaluating Wohnzimmer_temp2 userReading temperature_T: Can't find string terminator '"' anywhere before EOF at (eval 535) line 1.


Ich habe schon herum probiert aber immer bekomme ich die gleiche Meldung.
Sobald ich habe das Reading aus *_temp1 und die zusätzlichen Klammer wegnehme funktioniert es.
Ich kann mir nur vorstellen, dass er den Wert aus dem anderen Sensor nicht mag.

Ersuche um Hilfe

Danke
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Frank_Huber

Nimm einfach die Temperatur vom ds18b20.
Man sagt die sind genauer.

Bei den Modulen die ich hab (vom tm3d) ist genau aus dem Grund jeweils ein ds18b20 verbaut...

Grüße
Frank

maci

Zitat von: Frank_Huber am 21 März 2017, 20:59:19
Nimm einfach die Temperatur vom ds18b20.
Man sagt die sind genauer.

Bei den Modulen die ich hab (vom tm3d) ist genau aus dem Grund jeweils ein ds18b20 verbaut...

Grüße
Frank
So sicher bin ich mir da nicht.

Ich habe derzeit 2 DS18B20 nebeneinander hängen. Abstand der beiden sind 2 cm.
Die Werte differieren um 0,12 Grad.
Ist zwar nicht die Welt. Darum wollte ich von den beiden Werten hier, den Durchschnitt nehmen.
Hier differieren die Werte um etwa 0,41 Grad. So nach dem Motto, wenn ich schon beide Werte habe, also warum nicht verarbeiten.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

ak323

Zitat von: maci am 21 März 2017, 21:55:49
Ich habe derzeit 2 DS18B20 nebeneinander hängen. Abstand der beiden sind 2 cm.
Die Werte differieren um 0,12 Grad.

Bei einer absoluten Genauigkeit von +- 0,5 Grad Celsius macht das auch absolut Sinn !!!
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

maci

Zitat von: ak323 am 21 März 2017, 22:54:09
Bei einer absoluten Genauigkeit von +- 0,5 Grad Celsius macht das auch absolut Sinn !!!

Das mir schon klar.

Daher war auch meine Frage Eingangs wie ich die Formel gestalten muss, damit ich den Mittelwert aus 2 Sensoren bilden kann.

Ich habe schon soviel probiert, aber immer Fehlermeldungen.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

fiedel

Da es ja hauptsächlich ums schlauer werden geht: Fang erst mal kleiner an und erweitere die Formel step by step:
temperature_T { (ReadingsNum("Wohnzimmer_temp2","temperature",0) + ReadingsNum("Wohnzimmer_temp1","temperature",0)) / 2}
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Prof. Dr. Peter Henning

Erst einmal ist es absoluter Unsinn, dass der  4031 auch "Temperaturen ausgeben" würde: http://www.produktinfo.conrad.com/datenblaetter/500000-524999/505268-da-01-en-FEUCHTESENSOR_HIH_4031_001.pdf
Vielmehr ist es so, dass zur Kompensation der Temperaturabhängigkeit des 4031 die Temperatur (gemessen mit einem anderen Sensor) benötigt wird.

Zweitens: Die absolute Genauigkeit von +- 0,5 °C der 1-Wire-Sensoren lässt sich durch eine Nullpunktskalibrierung der Sensoren stark verbessern:
https://wiki.fhem.de/wiki/Eichung_von_1-Wire_Temperatursensoren.

Drittens: Es ist ebenfalls nicht richtig, dass aus der Mittelwertbildung zweier ungenauer Messwerte ein genauerer Wert folgen würde. Die Unsicherheit nimmt dabei zu.

Viertens: Temperaturmessungen innerhalb eines Raumes können durchaus um ein paar Zehntelgrade voneinander abweichen, wenn die beiden Sensoren nur wenige Zentimeter voneinander entfernt sind. Da spielen Faktoren wie Wärmestrahlung, Wärmeleitung und Konvektion eine wesentliche Rolle.

LG

pah

maci

Danke für die umfassende und klärende Antwort Peter.

Dann frage ich mich woher kommt dann der 2. Temperaturwert.
Ich verwende dieses Modul 1 hier: https://www.tm3d.de/shop/kategorien/bausaetze

Aber ich habe mich jetzt auf die Werte des DS18B20 Sensors gestützt.
In einem mehrstündigem Vergleich beider Werte, habe ich herausgefunden, dass dieser weniger schwankt.

Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

eldrik

Zitat von: maci am 23 März 2017, 07:23:49
Danke für die umfassende und klärende Antwort Peter.

Dann frage ich mich woher kommt dann der 2. Temperaturwert.
Ich verwende dieses Modul 1 hier: https://www.tm3d.de/shop/kategorien/bausaetze

Aber ich habe mich jetzt auf die Werte des DS18B20 Sensors gestützt.
In einem mehrstündigem Vergleich beider Werte, habe ich herausgefunden, dass dieser weniger schwankt.

Beim lesen deines ersten Beitrags hab ich schon gedacht, na da wird wohl eher ein DS2438 für den HIH-4031 im Einsatz sein und siehe da es ist ein DS2438, diese liest die Ausgabe Voltage vom HIH, seine eigene Versorgungsspannung und zusätzlich ermittelt er die Temperatur (jedoch nicht so präzise wie ein DS18b20).

Greetz
Eldrik

Prof. Dr. Peter Henning

Die vom DS2438 gemessenen Temperaturen und Spannungen schwanken leider sehr stark mit der Versorgungsspannung.

LG

pah