So schließt du einen DS18B20 Temperatursensor mit ESPHome an – einfach erklärt

In diesem Artikel zeige ich dir, wie du den digitalen Temperatursensor DS18B20 mit einem ESP32 oder ESP8266 und ESPHome betreibst. Der Sensor ist günstig, präzise und ideal für Smart-Home-Anwendungen wie Heizungssteuerung, Kühlkettenüberwachung oder einfach zur Raumtemperaturmessung.

Ich habe bei mir mittlerweile mehrere davon im Einsatz – im Technikraum, draußen an der Hauswand und sogar am Warmwasserspeicher. Wenn du willst, dass dein Smart Home wirklich weiß, was Sache ist: Temperatur ist eine der wichtigsten Basisdaten.

🧰 Was du brauchst

Bevor es losgeht, hier die Einkaufsliste:

  • DS18B20 Sensor * (wasserdichtes Modell empfehlenswert)
  • 4,7 kΩ Widerstand * (für den 1-Wire Bus)
  • ESP32 oder ESP8266 *(z. B. NodeMCU, D1 Mini)
  • Oder hier ein Set, da ist der Sensor, Widerstände und Jumper Kabel und Breadboard dabei
    • Jumper-Kabel
    • Breadboard (optional zum Testen)
  • ESPHome installiert (z. B. über Home Assistant)

Bei den oben angezeigten Links mit * handelt es sich um Affiliate-Links. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Es entstehen für Dich keine zusätzlichen Kosten.

Anschluss des DS18B20 Sensors

Der DS18B20 ist ein digitaler 1-Wire Sensor, das heißt: Er braucht nur einen Datenpin, egal wie viele Sensoren du anschließt. So sieht der typische Aufbau aus:

Pinbelegung (bei den meisten wasserdichten DS18B20)

Schwarz  → GND
Rot → VCC (3.3V oder 5V)
Gelb → Data

Anschluss an den ESP32 / ESP8266

Verbinde die Pins wie folgt:

DS18B20ESP Pin
VCC (rot)3.3V
GND (schwarz)GND
DATA (gelb)z. B. D5 (GPIO14 bei D1 Mini)

Zwischen VCC und DATA musst du einen 4,7 kΩ Pull-Up-Widerstand einlöten oder stecken. Ohne diesen funktioniert die Kommunikation nicht zuverlässig. Aber wichtig für Tests probier es auch mal ohne.

Hinweis: Bei den oben angezeigten Links handelt es sich um Affiliate-Links. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Es entstehen für Dich keine zusätzlichen Kosten.

Hinweis: Bei den oben angezeigten Links handelt es sich um Affiliate-Links. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Es entstehen für Dich keine zusätzlichen Kosten.

Oder hier als Set, da brauchst du keinen Widerstand mehr verlöten

Hinweis: Bei den oben angezeigten Links handelt es sich um Affiliate-Links. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Es entstehen für Dich keine zusätzlichen Kosten.

ESPHome Konfiguration

Jetzt kommt der wichtigste Teil: der Code. Du fügst den Sensor ganz einfach per YAML zu deiner esp32.yaml (oder esp8266.yaml) Datei hinzu. So sieht mein Beispiel aus.

Um die Sensoren zu erkennen, brauchst du eine Adresse. Das klingt kompliziert geht aber ganz einfach.

Schließe deinen Dallas Sensor an z.b. am Pin GPIO14.

Dann füge folgenden Code ein

# 1-Wire Bus definieren
one_wire:
  - platform: gpio
    pin: GPIO14

Jetzt sollte im Log irgendwo was sein mit one wire bus / Dallas und dann steht da eine Adresse: z.b. „address: 0x6f3c01f0953dc628“

Diese bitte kopieren und dann deinen Code erweitern:


# 1-Wire Bus definieren
one_wire:
  - platform: gpio
    pin: GPIO14

sensor:
  - platform: dallas_temp
    address: 0x1234567812345628
    name: Temp_Keller
    update_interval: 120s

Hier ist der Alte Code für ESPHome Versionen vor August 2025. Der geht nicht mehr bei aktuellen Versionen.


# 1-Wire Bus definieren
dallas:
  - pin: GPIO14

sensor:

  - platform: dallas
    address: 0x6f3c01f0953dc628
    name: "GasTherme_Vorlauf"
  - platform: dallas
    address: 0x323c01f095def928
    name: "GasTherme_Rücklauf"
  - platform: dallas
    address: 0x423c01f095ada528
    name: "GasTherme_Wasserspeicher"
👉 Wenn du nicht nur dieses eine Projekt nachbauen, sondern ESPHome von Grund auf verstehen willst, dann ist mein
ESPHome Meisterkurs – Lokale Hardware-Schmiede spannend für dich.

Dort zeige ich dir Schritt für Schritt, wie du eigene, stabile ESPHome-Geräte baust – von der Board-Auswahl über YAML bis zum fertigen Sensor im Home Assistant.

Hier findest du alle Infos

Sobald du den ESP geflasht und mit ESPHome eingebunden hast, erkennt Home Assistant den Sensor automatisch. Du findest ihn dann unter „Geräte & Dienste“ oder direkt in deinem Dashboard.

Du kannst die Temperatur jetzt:

  • anzeigen,
  • loggen,
  • grafisch auswerten,
  • oder in Automationen verwenden, z. B. für Heizung oder Lüftung.

Häufige Fehlerquellen

Ein paar Stolpersteine, die ich aus eigener Erfahrung (und Frustration 😅) kenne:

  1. Sensor wird nicht erkannt?
    → Prüfe unbedingt den Pull-Up-Widerstand und die richtige GPIO-Nummer im YAML!
  2. Sensor zeigt keine Werte an?
    → Achte auf die Stromversorgung. Bei langen Kabeln: 5V statt 3.3V nutzen!
  3. Falscher Pin gewählt?
    → GPIO-Zahl ≠ Pin-Name auf dem Board! Bei D1 Mini z. B. ist D5 = GPIO14.

Erweiterung: mehrere Sensoren am gleichen Pin

Das Geile am DS18B20: du kannst mehrere davon an einen einzigen Datenpin hängen! Einfach parallel schalten – also:

  • alle GNDs zusammen
  • alle VCCs zusammen
  • alle DATA-Leitungen zusammen

Fazit

Der DS18B20 ist für mich der perfekte Einstiegssensor im Smart Home. Er ist robust, günstig, präzise und super einfach über ESPHome einzubinden. Inzwischen überwache ich mit dem Sensor Temperaturen im Innen- wie Außenbereich – und durch die einfache Konfiguration kann ich jederzeit neue hinzufügen.

Wenn du neugierig bist, wie du mit der Temperatur zum Beispiel eine smarte Lüftung oder einen Frostalarm baust, schreib’s mir in die Kommentare – dann zeige ich das im nächsten Beitrag.

Du hast dieses Projekt erfolgreich umgesetzt? Mega – dann bist du schon weiter als 90 % der Leute, die sich „Smart Home“ auf die Fahne schreiben 😉

Wenn du jetzt merkst:
Ich will das nicht nur nachbauen, ich will’s wirklich checken und eigene Projekte umsetzten
dann lade ich dich in meinen
ESPHome Meisterkurs – Meisterwerkstatt für lokale Hardware ein.

Dort bekommst du:

  • eine klare Roadmap von den Grundlagen bis zu eigenen Projekten
  • fertige YAML-Vorlagen, die wir im Kurs Stück für Stück auseinandernehmen
  • Praxisbeispiele aus der Community: Präsenzmelder, Garten, Lüftung, PV & Co.

👉 Hier geht’s zum ESPHome Meisterkurs »

Alkly Dumme Dinge Smart machen

Alex Kly (Alkly)

Ich glaube an ein Smart Home, das dir gehört – nicht der Cloud. Ich zeige dir, wie du Technik nutzt, um Energie zu sparen, Solar optimal einzubinden und dein Zuhause nachhaltig zu steuern.
Ein Zuhause, das mitdenkt, dich entlastet – und dich jeden Tag ein Stück freier macht.

Hat dir der Artikel geholfen?

Ja! 👍
Ne 🙁
Danke für dein Feedback!

Ähnliche Beiträge

7 Kommentare

  1. Dallas wird inzwischen anders definiert.
    # Example configuration entry
    one_wire:
    – platform: gpio
    pin: GPIOXX
    # Example configuration entry
    sensor:
    – platform: dallas_temp
    address: 0x1234567812345628
    name: temperature
    update_interval: 120s

  2. Hey
    Welche esphome Version benutzt du? Bei mir kommt trotz korrekter Verkabelung keine Adresse eines termperatursensors.

    1. Danke für den Tipp, ich hatte eine Version von April auf meinem Testsystem. Wie auch untern kommentiert worden ist, ist die Definition jetzt anders.

  3. Vielen Dank für die Anleitung, sehr hilfreich für meine zukünftige Messung von Vor- und Rücklauf der Heizungsrohre!
    Wie kommt man denn die Adressierung bei mehreren Sensoren hin? Bzw. wie finde ich die richtige Adresse meiner beiden Sensoren heraus?

    1. Gerne! Gibt mehrere Wege, entweder nur mal einen Einstecken, ID notieren, nächster Einstecken.
      Oder einfach den Sensor kurz mit der Hand warm machen und schauen, welcher steigt.

  4. Vielen Dank. Mein Aufbau funktioniert. Wie kann ich den sensor kalibrieren? Er zeigt z.B. 23°C an, wo ein präzises Quecksilberthermometer aus dem Chemiebedarf 20°anzeigt.
    Vielen Dank. Michael

    1. Freut mich!
      Man kann an jeden Sensor ein Filters Offset einbauen, hier ein Beispiel von meinem ESPHome Meisterkurs, dort hatte ich es neulich im live erklört

      – platform: aht10
      i2c_id: bus_plus01
      address: 0x38
      temperature:
      name: „Plus01 Temperatur“
      filters:
      – offset: 20.0
      humidity:
      name: „Plus01 Luftfeuchte“
      filters:
      – offset: 10.0
      update_interval: 10s

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert