ESPhome findet den Dallas Temperatur Sensor nicht - Welchen PIN verwenden?

Moin
ich versuche die Vorgehensweise aus dem Simon-YT Video bzgl. der Temperaturanzeige umzusetzen.
Ich habe einen ESP32 soweit auch im System und daran einen DS18B20 Sensor angeschlossen.
Sensor Plus an 5V, Masse an GRD und die Datenleitung an … diverse PIN´s versucht. Leider immer die Ausgabe:

“[W][dallas.sensor:080]: Found no sensors!”

Text in yaml:

  pin:
    number: 23 #(hier diverse versucht die auch den pullup unterstützen)
    mode:
      input: true
      pullup: true
  update_interval: 10s

Wo liegt denn der verflixte Fehler?

Hallo @Hajot,
zeige mal bitte den vollständigen Code zum Dallas Sensor.
Nur … pin: … ist zu wenig.

Gruß
Frank

Sollte z.B. so aussehen:

dallas:
  pin:
    number: D4
    mode:
      input: true
      pullup: true
  update_interval: 10s

oder so:

dallas:
  pin:
    number: GPIO2
    mode:
      input: true
      pullup: true
  update_interval: 10s

Ist übrigends der selbe Pin

Ist der Original Eintrag aus dem Video von Simon.

dallas:
  id:
  pin:
    number: GPIO2
    mode:
      input: true
      pullup: true
  update_interval: 10s

Log-Auszug:

Gleich am Anfang bei PIN GPIO2

INFO Reading configuration /config/esphome/espheizung.yaml...
WARNING GPIO2 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
....

Weiter hinten dann:

[16:51:00][C][dallas.sensor:075]: DallasComponent:
[16:51:00][C][dallas.sensor:076]:   Pin: GPIO2
[16:51:00][C][dallas.sensor:077]:   Update Interval: 10.0s
[16:51:00][W][dallas.sensor:080]:   Found no sensors!

Ja, der Hinweis kommt. Denn kann man aber ignorieren.

Wenn Du wirklich alles richtig angeschlossen hast und die Yaml richtig ist, gibt es zwei möglichkeiten.
Sensor put oder Board put.

Deine Yaml aus dem ersten Post ist auf alle Fälle falsch.

 pin:
    number: 23

funktioniert nicht.
Entweder GPIOxx oder Dxx

mmh,
die ´Strapping’ Warnung kenne ich auch von meinem ESP32 und ignoriere ich.
Die Schreibweise ‘17’ frisst mein ESP32

Mein erprobter Code für Dallas Sensoren sieht so aus …

esp32:
  board: esp32dev #ESP32 Dev Kit C V2
  framework:
    type: arduino
....
# DS18B20 Temperaturfühler
dallas:
  - pin: 17 # 1Wire pin (GPIO17)

sensor:
  - platform: dallas
    address: 0x798509690e64ff28
    name: "Gehauesetemperatur" # interner Sensor im Gehäuse
    id: Geh_temp

Der richtige Log muss so aussehen:
[17:05:05][C][dallas.sensor:075]: DallasComponent:
[17:05:05][C][dallas.sensor:076]: Pin: GPIO2
[17:05:05][C][dallas.sensor:077]: Update Interval: 60.0s
[17:05:05][D][dallas.sensor:082]: Found sensors:
[17:05:05][D][dallas.sensor:084]: 0xc672ad571f64ff28
[17:05:05][C][dallas.sensor:089]: Device ‘Aussentemperatur Nordseite’
[17:05:05][C][dallas.sensor:089]: Device Class: ‘temperature’
[17:05:05][C][dallas.sensor:089]: State Class: ‘measurement’
[17:05:05][C][dallas.sensor:089]: Unit of Measurement: ‘°C’
[17:05:05][C][dallas.sensor:089]: Accuracy Decimals: 1
[17:05:05][C][dallas.sensor:097]: Address: 0xc672ad571f64ff28
[17:05:05][C][dallas.sensor:098]: Resolution: 12

Bist Du sicher bzgl. Verdrahtung und Funktionsfähigkeit des Sensors?

Ich habe manchmal das gefühlt, als wenn die Boards so ein bischen komisch sind.
Ich habe die Erfahrung gemacht, das anscheinend nicht alle Boards, alle schreibweisen mögen. :worried:

ich habe den Eindruck, dass hängt von der Board Definition ab, ob dann D1, 1 und/oder GPIO1 funktioniert

Gerade nochmal

dallas:
  pin:
    number: GPIO2
    mode:
      input: true
      pullup: true
  update_interval: 10s

getestet. Das mit 3 Sensoren. Ich warte eben auf den Eintrag im LOG → …Found sensors: Aber es wird nichts gefunden.

sind die 4k7 Ohm dran?
grafik

Ich probiers nochmal mit D2

D2 geht gar nicht. Im yaml wirds rot unterkringelt und beim installieren kommt sofort eine Fehlermeldung.
Bleibt als nur GPIOxx oder nur 2.
Der ESP32 macht dann daraus eben GPIO2

[17:18:22][C][dallas.sensor:076]: Pin: GPIO2

Nein. Laut Video von Simon ist das nicht erforderlich. Soll über den “pullup: true” erledigt sein.

wenn Dein Log sagt

Blockzitat ```
[16:51:00][C][dallas.sensor:075]: DallasComponent:
[16:51:00][C][dallas.sensor:076]: Pin: GPIO2

Dann hat Yaml Deine Schreibweise gefressen, hier sieht man GPIO2

Genau. Egal ob ich GPIO2 oder nur eintrage, raus kommt im Log immer PIN: GPIO2

Wenn´s falsch eingetragen ist oder was nicht passt meckert yaml im Editor gleich rum und unterstreicht den falschen Eintrag mit einem roten Kringel. Seeeehr praktisch.

Das kann nartürchlich sein.
So Fit bin da drin nicht.

Diese Aussage habe ich nur mal für einen D1 Mini gelesen und galt da auch nur für D4.
Habe ich allerdings bisher nicht am Mini getestet.

Ich würde es mal mit 4k7 versuchen, hat bei mir bisher immer funktioniert.

Und immer daran denken, die Pin Nummern sind unterschiedlich.

Z.B D1 Mini: D4->GPIO2

Ich hab´s mir auch angewöhnt immer GPIOxx einzutragen. Ich habe ein ESP32 mit 38 PIN´s. Die PIN Belegungstabelle ist auch nicht gerade leicht zu lesen, für einen Laien. Ziemlich bunt mit zich unverständlichen Angaben. In der GPIO Spalte der Tabelle steht immer nur der Nummer des PIN´s (als hierbei eine 2) . Das geht auch so durch.
Aber die Kiste findet eben keine Sensoren.

Löten!!! Eher nicht. Da bin ich eher ein Grobmotoriker und würde mit das sparen. Zusammenstecken geht eher besser :wink:
Und so einen Widerstand habe ich auch nicht hier.