3 DS18B20 in ESPhome

Guten zusammen,
seit kurzem versuche ich mich gerade in Esphome unter Home Assistant einzuarbeiten. Home Assistant läuft soweit gut. Nun habe ich einen d1_mini 8266 erworben, an dem 3 DS18B20 montiert sind. Dort war ESPeasy erst installiert, nun hab ich ESPhome überspielt. Die ersten beiden DS18B20 hängen am GPIO14 und der dritte DS18B20 am GPIO12. Im ersten Schritt, beim erstellen und überspielen der Yaml werden die Adressen auch ausgelesen, so dass ich sie kopieren konnte. Nur bei der Eingabe der Sensoren habe ich leider Probleme und komme nicht weiter. Überspiele ich die Yaml so wie unten beschrieben, liest der d1_mini die ersten beiden Werte einwandfrei aus. Aber was muss ich zusätzlich eingeben, damit auch der dritte Sensor mit ausgelesen wird? Egal was ist eingebe, ich bekommen dann immer wieder Fehlermeldungen. Es fehlt mir einfach an Wissen, den dritten Sensor (am GPIO12) mit auszulesen. Über eine Hilfe wäre ich dankbar. Viele Grüße
Olaf

Hier ein Auszug aus meiner funktionierenden Yaml (2Sensoren):

one_wire:
  - id: "dallas_hub_1"
    platform: gpio
    pin: GPIO14
sensor:
  - platform: dallas_temp
    address: 0xb3d4c0431f64ff28
    name: "Heizung Vorlauf"
  - platform: dallas_temp
    address: 0xf56bff431f64ff28
    name: "Heizung Rücklauf"

Häng den 3. Sensore mit an den GPIO14, das sind 1Wire-Sensoren, da können bis zu 8 an einem Port hängen, werden durch die Adressen unterschieden.

Mit einem ESP8266 hatte ich schon 8 Stück in Betrieb, der 9. wurde dann aber nicht mehr erkannt

1 „Gefällt mir“

Vielen Dank für den Hinweis. Nur leider habe ich das Teil nicht vor Ort sondern in 40 km Entfernung bei einem Bekannten installiert. Ich dachte, die Yaml entsprechend zu verändern, damit beide GPIOs abgefragt werden.

da steht alles stichwort one_wire_id

one_wire:
  - id: "dallas_hub_1"
    platform: gpio
    pin: GPIO14

  - id: "dallas_hub_2"
    platform: gpio
    pin: GPIO12

Das liegt wohl an der drunterliegenden Library.
Wir haben das schonmal durchgekaspert :slight_smile:

Mit einem ESP32 gehen wohl mehr. Einen ESP32 habe ich wohl, aber es mangelt mir an genügend DS18x20 zum experimentieren.

ESP32 hab ich genug, evtl. sogar DS18x20, wenn auch einfachen Typen im Transistorgehäuse sind.

Jetzt habe ich es geschafft und möchte mich recht herzlich bedanken. So habe ich die yaml angepasst und es funktioniert.
VG
Olaf

one_wire:
  - id: dallas_hub_1
    platform: gpio
    pin: GPIO14
  - id: dallas_hub_2
    platform: gpio
    pin: GPIO12

sensor:
  - platform: dallas_temp
    address: 0xb3d4c0431f64ff28
    name: Heizung Vorlauf
    update_interval: 30s
    one_wire_id: dallas_hub_1
  - platform: dallas_temp
    address: 0xf56bff431f64ff28
    name: Heizung Rücklauf
    update_interval: 30s
    one_wire_id: dallas_hub_1
  - platform: dallas_temp
    address: 0x8b012067de9e4828
    name: Maltingfloor
    update_interval: 30s
    one_wire_id: dallas_hub_2

Danke! Ich hab jetzt schon alles durchgemacht …ohne Erfolg.
Ich finde keine Adresse für eine Sensor…soweit komme ich gar nicht

poste mal code vielleicht hilft dann einer

Vielleicht sollten wir das identische Problem der identischen Person nicht an unterschiedlichen Stellen behandeln, sondern einfach hier weitermachen → Esphome ds18b20

1 „Gefällt mir“

Hallo liebe community,

ich weiss der Beitrag ist schon etwas älter, aber bei mir klappt es einfach nicht, bin auf diesen Beitrag gestossen. ich habe zwei Sensoren DS18B20 und möchte vorlauf und Rücklauf überwachen die beiden sind an einem ESP 32 am Pin GPI04 verbunden. Egal was ich probiert habe es klappt einfach nicht er schreibt immer einen Fehler. Kann mir bitte jemand helfen? Ich bräuchte nur den YAML Code

Übliche Fehler:

Pullup-Widerstand, Kabellänge etc etc.

Und egal WAS du probiert hast, WAS hast du denn probiert?

Ja, welchen denn?

1 „Gefällt mir“

Hi danke erstmal für deine Antwort, alles ist richtig verkabelt mit einem widerstand dazwischen. Es hat vorher bei arduino funktioniert. Mein Code ist falsch, vl hat jemand ja einen Code für mich. Wie gesagt es sind zwei sensoren an einem pin für vor und rücklauf.

Na dann poste doch mal deinen Code, dann kannst du evt. Hilfe erwarten

1 „Gefällt mir“

Der Code ist eigentlich sehr einfach, daher wird für eine effektive Hilfe dein gesamter YAML notwendig sein.

Dein Code muss die Zeilen

one_wire:
  - platform: gpio
    id: bus_one
    pin: D4

sensor:
  #DS18B20
  - platform: dallas_temp
    address: 0x1e000000c03e6428
    name: Vorlauf
    update_interval: 15s

enthalten (siehe Beispiel OlliB37). ID und one_wire_id sind nur notwendig, wenn mehere GPIOs (also mehere Busse?) verwendet werden.

Erst einmal ohne den Sensor Teil, dann sollten die Adressen der Sensoren im Log zu sehen sein und dann Adressenn in den Sonsor-Teil kopieren und alles mit “sensor:…” neu flashen.

1 „Gefällt mir“

Super, vielen vielen Dank es hat geklappt. Es tut mir sehr leid, dass ich so spät geantwortet habe. Ich habe irgendwie keine Meldungen bekommen, dass ihr geschrieben habt. Bin noch neu in der community und muss mich erst mal einarbeiten. Nochmals vielen Dank