1 Wire Lesefehler werden mit ca. -0.06 Grad angezeigt

Begonnen von Guest, 07 Oktober 2012, 19:27:54

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo

Ich habe einige 1-Wire Temperatursensoren im Einsatz. Ich verwende diese
mit dem Modul OWTHERM. Die Werte die die Sensoren liefern werden geloggt.

Nun kommt es vor, dass im Log plötzlich Messwerte mit -0.06 Grad
auftauchen. Ich habe den Verdacht, dass es sich hier um
Kommunikationsfehler handelt. Der Grund für meinen Verdacht: Wenn ich den
Sensor abstecke, dann bekomme ich auch Werte von -0.06 Grad.

2012-10-07_18:51:49 TempStube temperature: -0.06 °C
2012-10-07_18:56:49 TempStube temperature: 21.19 °C
2012-10-07_19:01:49 TempStube temperature: 21.25 °C
2012-10-07_19:06:49 TempStube temperature: 21.25 °C

Ich vermute mal, dass es nie eine Kommunikation geben wird, die keine
Fehler hat. Das ist auch kein Problem. Etwas störend ist, dass diese
Messwerte verwendet werden. So wird z.B. ein Alarm ausgelöst und Value()
liefert ,,falsche" Werte.

Mache ich etwas falsch?

Besten Dank.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Aber ja.

Es ist nämlich falsch, so eine Meldung hier zu posten ohne Information
darüber
- welche Sensoren es sind
- welches Interface verwendet wird.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo

Besten Dank für die schnelle Antwort.

Ich glaube den Fehler kann ich beheben:

Das Interface: LinkUSBi http://www.fuchs-shop.com/de/shop/17/1/13372210/

Die Sensoren: DS18B20 http://www.fuchs-shop.com/de/shop/5/1/13372095/

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Nächste Fragen:
- Welche Bustopologie ?
- Welche Kabel zur Verbindung der Sensoren mit dem Interface ?
- Welche Kabellängen ?
- Welche Version von OWTHERM (steht oben im Modul als Kommentar) ?

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Guten Morgen

Als Bustopologie habe ich eine Lineartopologie gewählt. Dies habe ich mit
einem Draht für die Datenrückleitung gemacht wie wir das schon hier
https://groups.google.com/forum/#!searchin/fhem-users/jack_uf/fhem-users/8k-o1zlHYJo/yoolPFIHsg4J
besprochen haben.

Als Kabel verwende ein Netzwerkkabel Kat e5.

Die Länge des Kabels beträgt ca. 80m, die Datenkabellänge beträgt ca. 110m.
Die Anzahl angeschlossener Sensoren beläuft sich auf 5.

Die Version von OWTHERM ist 2.17.

Folgendes habe ich noch ausprobiert. Gebe ich bei fhem
get TempStube temperature
so erhalte ich als Resultat wie zu erwarten
OWTHERM: TempStube.temperature => 19.375

Stecke ich nun das Kabel vom Interfaces LinkUSBI ab und gebe ich nochmals
get TempStube temperature
so erhalte ich als Resultat
OWTHERM: TempStube.temperature => -0.0625

Stecke ich nun sogar noch das Interfaces von der Fritzbox ab und gebe
nochmals
get TempStube temperature
so erhalte ich als Resultat
OWTHERM: Could not get values from device TempStube, return was invalid
data length

Stecke ich nun wieder alles ein und versuche ich es mit einem Namen für ein
Device, das es nicht gibt z.B.
get GibtEsNicht temperature
so erhalte ich als Resultat
Please define GitEsNicht first

Was ich nicht verstehe ist, warum mir fhem bei abgezogenen Netzwerkkabel
-0.0625 liefert.

Besten Dank für die Hilfe

Gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Bei abgezogenem Sensorkabel liefert das Interface irgendwelche sinnlosen
Binärwerte zurück. Im OWTHERM ist deshalb eine Überprfung des CRC-Code
enthalten - die sollte in diesem Fall eine Fehlermeldung im Log liefern
"Invalid CRC".

Der Algorithmus könnte nun natürlich in diesem eine unmögliche Temperatur
liefern, damit man das auch in den readings sieht. Darauf habe ich aber
verzichtet - denn "-0.06" ist genauso gut, wie "-999".

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo pah

Besten Dank für Deine Antwort.

Den Log-Eintrag kann ich aktuell weder bestätigen noch dementieren. Da ich
aktuell so oft am Bus herum spiele, kann ich nicht zweifelsfrei sagen,
welcher Log-Eintrag wegen meinem herumspielen und welcher wegen einem
Kommunikationsfehler entsteht.

Bezüglich den fehlerhaften Messungen. Wenn ich wünschen könnte würde ich
folgendes toll finden. Achtung hier spricht ein unwissender:

   1. Sollte ein fehlerhafter Wert gemessen werden (soweit ich verstanden
   habe merkt das OWTHERM) soll nochmals gemessen werden. Dies soll jedoch nur
   maximal 5 Mal versucht werden (die Zahl 5 ist reine Willkür).
   2. Konnte immer noch kein gültiger Wert ermittelt werden so hätte ich
   gerne keinen Wert. Mit keinem Wert meine ich:
      1. Es soll kein notify ausgelöst werden
      2. Im Log zum Sensor soll kein neuer Wert erfasst werden. Im Log von
      fhem, soll das Problem jedoch auftauchen.
      3. {Value(,,SensorName")} sollte den zuletzt gültig gemessenen Wert
      liefern.
      4. Die Alarm Flag sollen nicht verändert werden.
   
Was meinst Du dazu? Geht das überhaupt? Wenn nicht, dann habe ich mir
überlegt zu jedem Temperatursensor eine dummy Variable anzulegen. Per
notity würde ich dann die Werte von 1-Wire in die jeweilige dummy Variable
übernehmen, jedoch alle -0.06 ausfiltern. Anschliessend bauen alle
Überwachungen (Scripte, Plot usw.)  nur noch auf dem dummy auf, der
,,fehlerfrei" ist, auf. Die gemessenen Fehler bewirken aktuell z.B. dass
meine Heizung zu laufen beginnt, da es für eine Innentemperatur von -0.06
etwas kalt ist.

Bezüglich den Werten -0.06 und -999 wüsste ich noch ein kleines Detail
welches mich zu -999 tendieren liesse. Da ich unter anderem auch
Aussentemperaturen messe, ist für mich der Wert -0.06 nicht automatisch als
Fehler erkennbar. Dies ist jedoch auch das einzige was mir in den Sinn
kommt.

Ich danke Dir für Deine Bemühungen

Gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

>
>
>    1. Sollte ein fehlerhafter Wert gemessen werden (soweit ich verstanden
>    habe merkt das OWTHERM) soll nochmals gemessen werden. Dies soll jedoch nur
>    maximal 5 Mal versucht werden (die Zahl 5 ist reine Willkür).
>
> Das ist insofern problematisch, als derzeit der Anstoß zur
Temperaturmessung und das Auslesen synchron erfolgen, im Abstand von ca. 1
Sekunde. Damit würde ein Sensor ca. 5 Sekunden lang den Bus blockieren.
Eigentlich habe ich vor, dies zu flexibilisieren und den Anstoß zur Messung
vom Auslesen zu trennen.
 

>
>    1. Konnte immer noch kein gültiger Wert ermittelt werden so hätte ich
>    gerne keinen Wert. Mit keinem Wert meine ich:
>       1. Es soll kein notify ausgelöst werden
>       2. Im Log zum Sensor soll kein neuer Wert erfasst werden. Im Log
>       von fhem, soll das Problem jedoch auftauchen.
>       3. {Value(,,SensorName")} sollte den zuletzt gültig gemessenen Wert
>       liefern.
>       4. Die Alarm Flag sollen nicht verändert werden.
>    
>
Das war sogar schon so implementiert: Eine fehlerhafte Messung hat
present=0 gesetzt. Allerdings fehlt dann noch ein Mechanismus, der den
Sensor nach einer Zeit wieder anstößt, damit er auf present=1 kommt.

Ich werd mal drüber nachdenken.

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

OK, erledigt: Ich hatte noch einen Fehler in der CRC-Berechnung der
Temperaturwerte. Es sollten keine "ungemessenen" Temperaturen mehr ins Log
kommen. Modul wird gerade eingecheckt

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Sehr gut, vielen Dank. :-)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo pah

Ich habe es jetzt auch noch getestet und es funktioniert perfekt. Es ist
genau so wie man es sich wünscht.

Besten Dank

Gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com