Mehrere DS18B20 dallas sensor: Scratch Pad Prüfsumme ungültig!

Hallo zusammen hat noch jemand diesen Fehler bei Temperaturmessungen mit dem Dalles-Sensor DS18B20.
Hat mind. 1 Jahr fehlerfrei funktioniert.
Ich habe keine Veränderungen vorgenommen.
Hier ein Teil vom LOG

[12:38:24][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[12:38:24][C][dallas.temp.sensor:034]:   Address: 0x8b3ce10457ad1c28 (DS18B20)
[12:38:24][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[12:38:24][C][dallas.temp.sensor:036]:   Update Interval: 10.0s
[12:38:24][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[12:38:24][C][dallas.temp.sensor:034]:   Address: 0xb13ce104572cc728 (DS18B20)
[12:38:24][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[12:38:25][C][dallas.temp.sensor:036]:   Update Interval: 10.0s
[12:38:25][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[12:38:25][C][dallas.temp.sensor:034]:   Address: 0x703ccfe3817ed828 (DS18B20)
[12:38:25][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[12:38:25][C][dallas.temp.sensor:036]:   Update Interval: 10.0s

Jetzt die Fehlermeldung:

[12:38:31][W][dallas.temp.sensor:139]: 'Heizung Aussen' - Scratch pad checksum invalid!
[12:38:31][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[12:38:31][D][sensor:093]: 'Heizung Aussen': Sending state nan °C with 2 decimals of accuracy
[12:38:32][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:33][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:33][W][dallas.temp.sensor:139]: 'Heizung Vorlauf' - Scratch pad checksum invalid!
[12:38:33][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[12:38:33][D][sensor:093]: 'Heizung Vorlauf': Sending state nan °C with 2 decimals of accuracy
[12:38:33][W][dallas.temp.sensor:139]: 'Heizung Rücklauf' - Scratch pad checksum invalid!
[12:38:33][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[12:38:33][D][sensor:093]: 'Heizung Rücklauf': Sending state nan °C with 2 decimals of accuracy
[12:38:41][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:41][W][dallas.temp.sensor:139]: 'Heizung Aussen' - Scratch pad checksum invalid!
[12:38:41][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[12:38:41][D][sensor:093]: 'Heizung Aussen': Sending state nan °C with 2 decimals of accuracy
[12:38:42][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:43][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:43][D][dallas.temp.sensor:054]: 'Heizung Vorlauf': Got Temperature=22.9°C
[12:38:43][D][sensor:093]: 'Heizung Vorlauf': Sending state 22.87500 °C with 2 decimals of accuracy
[12:38:43][D][dallas.temp.sensor:054]: 'Heizung Rücklauf': Got Temperature=21.6°C
[12:38:43][D][sensor:093]: 'Heizung Rücklauf': Sending state 21.56250 °C with 2 decimals of accuracy
[12:38:51][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:38:51][W][dallas.temp.sensor:139]: 'Heizung Aussen' - Scratch pad checksum invalid!
[12:38:51][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[12:38:51][D][sensor:093]: 'Heizung Aussen': Sending state nan °C with 2 decimals of accuracy
[12:38:53][D][dallas.temp.sensor:054]: 'Heizung Vorlauf': Got Temperature=22.8°C
[12:38:53][D][sensor:093]: 'Heizung Vorlauf': Sending state 22.81250 °C with 2 decimals of accuracy
[12:38:53][D][dallas.temp.sensor:054]: 'Heizung Rücklauf': Got Temperature=21.5°C
[12:38:53][D][sensor:093]: 'Heizung Rücklauf': Sending state 21.50000 °C with 2 decimals of accuracy
[12:39:01][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[12:39:01][D][dallas.temp.sensor:054]: 'Heizung Aussen': Got Temperature=14.6°C
[12:39:01][D][sensor:093]: 'Heizung Aussen': Sending state 14.62500 °C with 2 decimals of accuracy
[12:39:03][D][dallas.temp.sensor:054]: 'Heizung Vorlauf': Got Temperature=22.9°C
[12:39:03][D][sensor:093]: 'Heizung Vorlauf': Sending state 22.87500 °C with 2 decimals of accuracy
[12:39:03][D][dallas.temp.sensor:054]: 'Heizung Rücklauf': Got Temperature=21.5°C
[12:39:03][D][sensor:093]: 'Heizung Rücklauf': Sending state 21.50000 °C with 2 decimals of accuracy

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Das kann mehrere Ursachen haben.
Zum Einen altert Elektronik. Das kann Jahrzehnte dauern, aber auch nur wenige Monate, Wochen oder Tage. Insbesondere Elektrolytkondensatoren sind davon betroffen, aber auch jedes aktive Bauellement, vor allem, wenn es aus einer Billigproduktion kommt, damit der Preis stimmt.Und nein Markenware schützt nicht davor, denn auch die kommt aus irgendeiner chinesischen Dorfschmiede.
Zum Anderen hast du sicher das eine oder andere Update unter HA eingespielt, auch für ESPHome.
Und last but not least, Löt- und Schraubverbindungen können auch die Ursache sein. Das Zauberwort heißt Oxidation. Metalloxide leiten den Strom wesentlich schlechter, als das nicht oxidierte Metall.Lötverbindungen sollte man deshalb immer gut reinigen und mit Schutzlack überziehen. Für Schraubverbindungen gibt es Adernendhülsen. Ich fülle diese nach dem Grimpen gern mit Lötzinn, um das Oxidieren zu verlangsamen. Im Heizraum habe ich den ESP in einem IP68-Gehäuse und dort, wo unterwegs alle DS18B20 zusammenkommen habe ich die Lötverbindungen für rot, gelb und schwarz mit kleberhaltigem Schrupfschlauch isoliert und dann noch mal über alles das selbe Spiel. Ist zwar steif und dick an dieser Stelle, aber dafür ist das hoffentlich sehr lange geschützt und gleichzeitig wirkt das auch als Entlastung für die Lötstellen.
Den Widerstand zwischen Datenleitung und VCC direkt am ESP hast du auch? Denn wenn die Verbindungen unwillig werden, hilft der noch mit parasitärem Strom über die Datenleitung zusätzlich zur PullUp-Funktion.

Thomas
Thomas

Wenn du sonst nichts geändert hast, dann wird es wahrscheinlich ein Problem mit einer der Anschlussleitungn sein. Wenn etwas gesteck und nicht gelötet ist, dann würde ich es anlöten bzw. die Kontakte reinigen. Wenn eine Schraub- oder Klemmverbindung, z.B. zum Widerstand etwas oxidiert ist, dann kann das für solche Probleme schon reichen…

Hallo Lutz und Thomas,
vielen Dank für eure Hilfe.
Ich habe die gesteckten Verbindungen überprüft und gereinigt. Dann habe ich noch einen 4,7kOhm Widerstand zwischen der Datenleitung und 5V eingelötet.
Vorher hatte ich nur:
mode:
input: true
pullup: true

Jetzt funktioniert wieder alles.
Noch einmal vielen Dank für den Tip und einen schönen Sonntag.

Mit freundlichen Grüßen

Bernhard

Ja die DS18B20 sind beim Widerstand etwas zickig. Das hat im Forum hier schon einige Diskussionen erzeugt. Sie brauchen einen X-Kilo Ohm Widerstand zwischen Datenleitung und Versorgung.
Bei 3,3V Versorgung klappt das bei mir mir 4,7kOhm Widerstand und ohne “pullup:true”. Kann sein das es bei 5V Versorgung gerade so auf Kante mit “pullup:true” und ohne extra Widerstand geht.
Und bei dir scheint es ja bei 5V mit 4,7K Ohm Widerstand und “pullup:true” zu gehen.

Ich habe das gleiche Problem. Es sind insgesamt 8 Temperaturfühler (Dallas ) im Einsatz. Installiert vor einem Jahr - mittlerweile merke ich dass immer wieder Sensoren zeitweise ausfallen (keine Werte mehr liefern) und beim Prüfen der Lofiles ist mir auch aufgefallen dass unterschiedliche Fehlermeldungen kommen:

|20:02:48|[W]|[component:182]|Component dallas_temp.sensor cleared Warning flag|
| --- | --- | --- | --- |
|20:02:49|[W]|[dallas.temp.sensor:128]|'T05 Gastherme HK2 VL' - Scratch pad checksum invalid!|
|20:02:49|[W]|[component:167]|Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid|
|20:02:49|[D]|[dallas.temp.sensor:130]|Scratch pad: FF.FF.FF.FF.FF.FF.FF.FF.FF (C9)|
|20:02:49|[D]|[dallas.temp.sensor:054]|'T08 Heizraum Innen': Got Temperature=24.6°C|
|20:02:49|[D]|[dallas.temp.sensor:054]|'T04 GasTherme HK1 RL': Got Temperature=28.3°C|
|20:02:51|[D]|[dallas.temp.sensor:054]|'T06 Gastherme HK2 RL': Got Temperature=37.6°C|
|20:02:51|[W]|[component:182]|Component dallas_temp.sensor cleared Warning flag|
|20:02:52|[W]|[dallas.temp.sensor:128]|'T11 Heizraum Aussen' - Scratch pad checksum invalid!|
|20:02:52|[W]|[component:167]|Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid|
|20:02:52|[D]|[dallas.temp.sensor:130]|Scratch pad: FF.FF.FF.FF.FF.FF.FF.FF.FF (C9)|

zur Info - ich verwende

:slight_smile: one_wire:
- platform: gpio
  pin: 
    number: GPIO2
    mode:
      input: true
      pullup: true
# update_interval: 60s

zu Beginn lief alles Problemlos -
…ich versuche es mal mit einem Widerstand -

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Das liegt an der 2025.5.0 version von esphome. Habe das Problem auch.

Hi, hast du etwas geändert, bzw. was?

Seit dem letzten ESPHome Update, funktioniert es bei mir auch nicht mehr. Es hat Jahrelang ohne Widerstand funktioniert. 4,7kOhm eingebaut und trotzdem keine Funktion.