ich habe seit ein paar Wochen 5 Dallas DS18B20 mit jeweils 5 Meter Kabel über den internen Pullup an einem D1 Mini (8266) hängen, was auch gut funktioniert hat bis auf den Umstand, daß bei den Aktualisierungen mal der eine oder andere Sensorwert vorübergehend als “unbekannt” angezeigt wurde. Damit konnte ich aber gut leben.
Seit heute Morgen werden die Sensoren aber gar nicht mehr angezeigt. Erst war es nur einer, dann alle.
Ich hatte dann die Fehlermeldung “found no sensors”.
Die Verkabelung habe ich schon überprüft, ESP Home dann auch auf 2023.12.7 aktualisiert (war vorher 2023.12.6). Ich habe auch schon einen anderen D1 Mini ausprobiert, aber es geht auch damit nicht.
Ich hatte die Sensoren die ganze Zeit auf GPIO02, habe jetzt aber auch mal GPIO01 ausprobiert, alles ohne Erfolg. Auch wenn nur 1 Sensor verkabelt wird, geht es nicht.
Die aktuelle Fehlermeldung im Log sieht so aus:
[18:09:13][E][dallas.sensor:112]: Requesting conversion failed
[18:09:13][D][sensor:093]: ‘Vorlauf Gasheizung’: Sending state nan °C with 2 decimals of accuracy
[18:09:13][D][sensor:093]: ‘Rcklauf Gasheizung’: Sending state nan °C with 2 decimals of accuracy
[18:09:13][D][sensor:093]: ‘Vorlauf Solarthermie’: Sending state nan °C with 2 decimals of accuracy
[18:09:13][D][sensor:093]: ‘Rcklauf Solarthermie’: Sending state nan °C with 2 decimals of accuracy
[18:09:13][D][sensor:093]: ‘Auentemperatur’: Sending state nan °C with 2 decimals of accuracy
Liegt es vielleicht an ESP Home oder hat noch jemand eine Idee?
@Pit
hab’ zwar keine erste Idee, aber sieht Du den ersten Schritt im Logfile, also die Sensoren? Also folgenden ähnlichen Eintrag, das lesen der Werte kommt ja erst später.
18:39:39][C][dallas.sensor:075]: DallasComponent:
[18:39:39][C][dallas.sensor:076]: Pin: GPIO17
[18:39:39][C][dallas.sensor:077]: Update Interval: 60.0s
[18:39:39][D][dallas.sensor:082]: Found sensors:
[18:39:39][D][dallas.sensor:084]: 0x8c3c01d075847128
[18:39:39][D][dallas.sensor:084]: 0xc672ad571f64ff28
[18:39:39][C][dallas.sensor:089]: Device ‘Gehauesetemperatur’
[18:39:39][C][dallas.sensor:089]: Device Class: ‘temperature’
[18:39:39][C][dallas.sensor:089]: State Class: ‘measurement’
[18:39:39][C][dallas.sensor:089]: Unit of Measurement: ‘°C’
[18:39:39][C][dallas.sensor:089]: Accuracy Decimals: 1
[18:39:39][C][dallas.sensor:097]: Address: 0x8c3c01d075847128
[18:39:39][C][dallas.sensor:098]: Resolution: 12
[18:39:39][C][dallas.sensor:089]: Device ‘Aussentemperatur Nord’
[18:39:39][C][dallas.sensor:089]: Device Class: ‘temperature’
[18:39:39][C][dallas.sensor:089]: State Class: ‘measurement’
[18:39:39][C][dallas.sensor:089]: Unit of Measurement: ‘°C’
[18:39:39][C][dallas.sensor:089]: Accuracy Decimals: 1
[18:39:39][C][dallas.sensor:097]: Address: 0xc672ad571f64ff28
[18:39:39][C][dallas.sensor:098]: Resolution: 12
@Pit
Du musst an das Grundübel ran [18:57:41][W][dallas.sensor:080]: Found no sensors!. … state nan °C ist hier ein Folgefehler.
Kannst Du einen anderen DS18B20 (nicht einer der 5) unabhängig der 5er-Verkabelung direkt an den D1 mini hängen? Dies würde mein erster Ansatz sein und dann weiter … geht (Feldverkabelung und Sensoren), geht nicht (ESP & Software).
Stimmt @spiderrolli, da hatte ich nicht dran gedacht … ich arbeite nur mit externen 4k7, da ist mir dieser Gedankengang erstmal weit weg.
An anderer Stelle hatte ich schonmal geschrieben, gemäß Herstellerspec 4k7. Und das ich auch nicht habe rausfinden können, wie groß der interne Pullup eigentlich ist.
Ich habe keine weiteren Dallas-Sensoren und auch keinen Widerstand zum Testen.
Ich verstehe halt nicht, daß es wochenlang funktioniert hat und jetzt plötzlich nicht mehr. Es können doch kaum alle Sensoren auf einmal ausfallen, und am D1 Mini lag es offenbar auch nicht.
Kannst Du mir mal einen passenden Widerstand verlinken, z. B. bei Amazon?
Danke, da gibt es aber verschiedene Wattwerte, welchen sollte man da am besten nehmen?
Ich habe die drei Kabel an den ESP gelötet und die Sensoren dann mit WAGO-Klemmen verbunden. Kann ich den Widerstand auch in die WAGO-Klemmen mit einstecken oder wie bringe ich den ansonsten am besten an?
Das hatte ich auch. In meinem Testaufbau funktionierte es ohne Widerstand, im produktiven Einsatz dann nicht. Man liest auch immer wieder, dass es ohne Widerstand funktionieren kann, aber nicht muss.
Also: Widerstand dran wie in der Beschreibung zum Sensor und es lief bei mir.
@Pit
1/4 Watt sind vollkommen ausreichend.
Nur als Set würde ich so etwas wie hier 1% Widerstände nehmen, 5% wäre mir zu schlecht (wer weiß was man in der Zukunft noch so braucht.
Hallo und guten Abend.
ich hänge mich hier mal dazu. Meine 18b20 3 Stück sind seit gut einem Jahr mit einem ESP32 verbunden.
Haben bis ca. vor Weihnachten sehr gut funktioniert.
Plötzlich fallen sie ständig, kurzfristig aus.
Jetzt habe ich den ESP32 auf ein Board geklemmt. Die Kabel zu den Sensoren sind mit WAGO Klemmen verbunden.
Sie fallen immer kurzfristig aus. Im Dashboard kommt die Meldung: kein numerischer Wert
Ich klinke mich auch einmal mit rein, habe auch eine Lösung, welche zumindest bei meiner Konfiguration fehlerfrei funktioniert.
Ausgangslage:
2 Dallas Hubs auf einem ESP8266 D1mini
Je Kanal ein Externer Pullup-Widerstand
Funktionierte, aber sporadische Aussetzer mit - Scratch pad checksum invalid auf unterschiedlichsten Kanälen
Dann bin ich auf einen ESP32 D1mini umgezogen
(weil die weiteren Programmteile den ESP8266 hoffnungslos überlastet haben).
Böses Erwachen:
Die Aussetzer wurden häufiger bis hin dass ALLE Sensoren nach ca. 3 Tagen keine Werte mehr lieferten.
Meine Lösungen:
Github
Meine Recherche im Netz hatte ergeben, dass viele ESP32-Boards aktuell mit Problemen in Verbindung mit den Dallas DS18B20 klagen.
Nette Menschen haben eine neue Bibliothek bereitgestellt, welche anstatt der ESP-Standard Dallas-Integration geladen wird und das Timing-Problem behebt.
Hier der Link dazu: DALLASNG
Ein vernünftiges Netzteil
Da ich mit meiner Applikation Stellventile der Fußbodenheizung ansteuere, brauchte ich eh etwas mehr Strom, also ein MeanWell NDR - 240-24 eingebaut.
Einen Step-Down Regler 5V/2,5A dahinter geschaltet und damit den ESP32 versorgt. Die 3,3V für die Dallas Sensoren greife ich vom ESP32 Board ab.
Ergebnis:
Mit der neuen Integration dallasng wurde der ursprüngliche Totalausfall abgestellt.
Es traten noch vereinzelt und deutlich seltener Fehler mit Scratch pad checksum invalid auf.
Nach Einbau des neuen Netzteil verschwand auch diese Problemchen.
Zusammenfassend:
Meine 10 Dallas Sensoren laufen ohne Problem am ESP32 D1mini, in einer 2x5 Konfiguration.
Das klingt interessant, ich würde das mit dem anderen Code auch gerne mal versuchen, aber ich stehe etwas auf dem Schlauch, wie ich den Code für meine 5 Sensoren auf den ESP und in HA bekomme. Gibt es da auch eine einfache Anleitung?
Kann man da einfach in ESP Home den Code editieren und wie funktioniert das mit dem OneWireNg library? Hast Du da evtl. einen Beispielcode?
Der interne pullup Widerstand ist nur für einen einzelnen Sensor empfohlen. Steht zumindest in der tasmota Dokumentation. Aber der ESP ist ja die gleiche Hardware.
Bei mehreren Sensoren kann man auch probieren den externen Widerstand etwas niedriger zu verwenden.
Ich hab mir da eine Art Steckerleiste für die Sensoren und den Widerstand gebaut. Hab ich hier irgendwo schonmal gezeigt.
INFO ESPHome 2023.12.7
INFO Reading configuration /config/esphome/esphome-web-d07fc0.yaml...
Failed config
sensor.dallas: [source <unicode string>:47]
Couldn't find any component that can be used for 'dallas::DallasComponent'. Are you missing a hub declaration?.
platform: dallas
address: 0x136C6D443E9AB28
name: Vorlauf Gasheizung
unit_of_measurement: °C
icon: mdi:thermometer-plus
device_class: temperature
state_class: measurement
accuracy_decimals: 2
disabled_by_default: False
force_update: False
resolution: 12
sensor.dallas: [source <unicode string>:56]
Mir ist immer noch nicht klar, wenn ich in ESP-Home den Code vom ESP vor mir habe, der zuvor funktioniert hat, an welchen Stellen ich dann was austauschen muß, damit ich dallasng integrieren kann.
Im Moment sieht der Code so aus (für einen Sensor, und API und Wifi kommen natürlich noch vorher).