DS18S20 - fehlerhafte Darstellung der Temperatur

Hallo zusammen!

Ich habe folgendes Problem mit der Anzeige Temperaturwerten von DS18S20 Sensoren:

Wenn die Sensoren mit Hilfe des Timers ausgelesen werden, wird die Temperatur (z.B. 51 °C) wie erwartet in IPS dargestellt.

Wenn ich die Sensoren manuell (über den Button „Lesen“) oder per Skript mit der Funktion TMEX_RequestRead() auslese, erhalte ich als Wert -77 °C.

Ist das ein Fehler in der Software oder muss ich den wert irgendwie umrechnen (was beim Auslesen per Timer ja offensichtlich richtig gemacht wird)?

Verwendet wird die IPS-Version 2.10.

Gruß, Jens

Hallo zusammen!

Als Ergänzung zum ersten Posting habe ich noch einen Screenshot hinzugefügt.

Sensor#1 wird über den Timer ausgelesen. Sensor#2 über das Skript Read_1wire, das alle 2 Minuten ausgeführt wird. Das Skript enthält nur folgenden Code:

<?

 //Fügen Sie hier ihren Skriptquellcode ein
 	TMEX_RequestRead(50597 /*[Heizungssteuerung\Pufferspeicher\Sensor#02]*/);

?>

Gruß, Jens

Hallo Jens,
irgendwann hat mal PARESY gemeint man soll die Temperaturfühler immer über den internen Timer der 1-Wire-Instanz auslesen da intern für den TMEX eine entsprechende Warteschlange eingerichtet wird

Jedoch kann ich dein Verhalten nicht bestätigen, denn ich lese auch mit einen Testscript „Alle angeschlossenen Fühler per Script lesen“ aus und das zur vollen Zufriedenheit

Ich schick dir per PM mein Testscript
(will es hier nicht veröffentlichen weil es eben alle Fühler über TMEXA_EnumerateDevices und TMEX_RequestRead ausliest und nicht wie von PARESY vorgeschlagen für jeden Fühler eine eigene Instanz mit internen Timer anlegt)

tgusi74

Hallo tgusi74,

Dein Skript funktioniert soweit. Allerdings werden die Werte nur korrekt dargestellt, wenn in der Instanz eines Sensors „Timer aktiviert“ angewählt ist. Wenn „Timer aktiviert“ nicht angewählt ist, dann erhalte ich wieder die negativen Temperaturwerte :confused:

Ich bin eigentlich nur darauf gekommen, die Sensoren per Skript auslesen zu wollen, weil das Auslesen per Timer bei mir instabil lief. Ab einem bestimmten Zeitpunkt tritt der Fehler „Error strong-accessing 1-Wire Device“ auf und ab da geht auf dem 1wire-Bus nichts mehr, bis ich den Bus stromlos gemacht und den Rechner neu gestartet habe.

Es gab schon mal einen Beitrag zum Thema „Error strong-accessing 1-Wire Device“. Die Lösung dort war, das am Ende ein neuer Rechner eingesetzt wurde, der mehr Dampf hatte. Das brachte mich jetzt auf den Trichter, das der TMEX-Treiber möglicherweise empfindlich auf hohe Rechner-Auslastung reagiert. Ich muss das noch weiter beobachten. Bis jetzt konnte ich keinen eindeutigen Zusammenhang zu anderen Ereignissen herstellen.

Gruß, Jens

Hallo Jens,
beim mir geht das ohne „Timer aktiviert“ ==> würde auch sonst der Script wenig Sinn ergeben !!

Bei dir muss irgend etwas außerhalb von IPS nicht in Ordnung sein (TMEX-Treiber, …)

tgusi74

Hallo Jens,
Du hast einen BUG in IPS aufgedeckt !!!

Ich habe vorhin meinen Augen nicht getraut wie ich auf einmal bei einen 18S20 (Family 10) einen negativen Temperaturwert von -127.6°C angezeigt bekam (Solltemperatur 0.4°C) !!

(bei den Test’s der letzten Tagen hatten meine Sensoren immer nur MINUSWERTE gehabt und da tritt der Fehler nicht auf bzw. bei den DS18B20(Family28) ist das Problem nicht feststellbar)

@paresy,
kannst Du Dir bitte dieses Problem bei Gelegenheit anschauen

  • 1-Wire Instanz ==> „Timer deaktiviert“
  • lesen über „TMEX_RequestRead“ bzw. über „LESEN“ in der Instanz
  • bei POSITVER Temperatur ist die Statusvariable um -128°C verschoben (Family 10)

Danke
tgusi74

In der nächsten 2.2er Beta behoben.

paresy