Esphome ds18b20

Hallo liebe Leute,
ich nehme den Ball auf. Warum? Ich komme hier nicht weiter! Die Diskussion oben hat mich einiges gelehrt, aber am Ende nicht geholfen. Mich verlässt die langsam die Zuversicht.
Aber von Anfang an.
Ich setze auf dem ESP8266 Wemos Mini D1 auf.
Hier installiere ich folgenden Code:

esphome:
  name: warmwasservorlauf
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: xxx
  password: xxx

logger:

api:

ota:
  platform: esphome
  password: "73f13dedcd205f614159733d2963201d"


captive_portal:

external_components:
  - source: github://nrandell/dallasng

dallasng:
  - pin: GPIO4
    id: hub_1
    update_interval: 10s

# Individual sensors

sensor:
  - platform: dallasng
    dallasng_id: hub_1
    address: 0x25d666720a646128
    name: "Vorlauf HK1"
    resolution: 9  # Lower resolution to reduce noise
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2

Der D1-Mini wird im WLAN erfasst :ok_hand:
Den Dallas Themperatursenor (5m lang) habe ich direkt angelötet

(Ich hatte von Problemen mit Kontakten bei der Verwendung von Jumperkabeln und Alligatorklemmen gehört)
Nun bekomme ich folgendes Problem:


Der Sensor wird nicht erkannt ! → Die Adresse des Sensors lag schon vor !?
grafik
Was mir auffällt (und da bin ich unsicher!): Ich habe einen anderen DS18B20er genommen - um Fehler bei Sensor auszuschließen - … die Adresse bleibt aber… liegt da der Hund begraben?
Wenn ja, so komme ich partout nicht mit der o.g. Anleitung klar. Da fehlt mir leider die Erfahrung…
Aber hey: Vielleicht seht ihr hier ein weiteres Problem? Besten Dank für euer Feedback.

Peter

… kleine Anmerkung: Ich hab mir erlaubt einen 10K Widerstand zwischen 5V-Pin und Pin D2 (i.e. GIO4) zu setzen … nennt sich wohl “Pullup-Widerstand”… leider mit folgendem Ergebnis:

Das hat also auch nichts gebracht… :frowning:
Bin ratlos…

lg
Peter

… nehme ich diesen im laufenden Betrieb wieder weg …

sehe ich

Sensor zunächst erkannt
liefert zunächst aber keine Temperatur
und dann kommen auch schon wieder die Fehlermeldungen… :sleepy:

:crayon:by HarryP: Zusammenführung Mehrfachpost (bitte “bearbeiten” Funktion nutzen)

Hallo @Tec-Pete ,

Vergleiche https://community.simon42.com/t/ow2s0smsguard-mit-s0-in-homeassistant/40635/3
Besser 4,7k

Gruß Handfest

1 „Gefällt mir“

Der Widerstand ist notwendig. Insbesondere wenn mehrere DS18B20 betrieben werden!

1 „Gefällt mir“

Der ESP8266 und EPS32 arbeitet mit 3,3V; der Sensor leider mit 5V - manchmal klappt es, manchmal nicht. Dann braucht man einen level converter z.B. 3x Pegelwandler 4 Kanal I2C IIC Logic Level Converter 5V~3.3V für Arduino | eBay . Und man sollte wissen, dass die Mehrzahl der DS18B20 fake sind GitHub - cpetrich/counterfeit_DS18B20: How to tell original from fake DS18B20 temperature sensors. - aber viele ausreichend gut funktionieren.

1 „Gefällt mir“

Ja l, die meisten sind Fakes oder besser Klone. Funktionieren ja meistens.
Laut Datenblatt laufen die ab 3 Volt. Da hätte ich auch nie Probleme. Mit dem Widerstand muss man manchmal experimentieren, bei mehreren Sensoren und längeren Kabeln.

Ich verstehe die Kritik am Video überhaupt nicht! Das Video ist super gut erklärt und jeder kleine Schritt beschrieben. Wenn ich mich recht erinner weist Simon darauf hin, dass er das mit dem Widerstand nicht erklären kann, es bei ihm aber mit dem Pullup vom Board funktioniert.
Einige hier im Thread haben ja geschrieben, dass es für mehrere Sensoren und längeren Kabeln sinnvoll ist mit dem Widerstand zu spielen. Bei mir funktionieren 3 der Geräte mit bis zu 10 Sensoren und Kabeln um die 1,5m. Am letzten sollten aber 12 Sensoren hängen ebenfalls mit 1,5m Kabeln und das funktionierte nicht. Mit externen Widerstand läuft es.

2 „Gefällt mir“

Laut dem Datenblatt zum DS18B20 wird zwischen dem Anschluss I/O und Pluspol (3,3V bis 5V) ein Widerstand von 4,7 kOhm benötigt (Abbildung 2).
Wer sich daran hält, der hat weniger Probleme.

2 „Gefällt mir“

Ist ja auch nicht so dass wir das mit dem ds18x20 noch nie hatten:

Und mit variablem Widerstand:

Ich fühl mich manchmal wie ein Lehrer aus der Feuerzangenbowle :innocent:

2 „Gefällt mir“

Hallo liebe Leute,
Vielen Dank für die vielen konstruktiven Ansätze um mein Problem zu lösen. Ich habe bisher viel probiert …. Leider erfolglos.
Von Dallas über OneWire bis DallasND, die Sensoren ausgetauscht und die Verbindungen hart verlötet…
Auch wenn DallasND nur für ESP32 laufen soll und der Einsatz von externen Pullup-Widerständen (gleich welcher Art) unterschiedlich bewertet wird…
Ich geb der Sache noch einen Ruck und setz den 4,7k ein…. Einen Versuch ist‘s auf jeden Fall wert. Merci für den Tipp :v:
Unsicherheit besteht noch bzgl. der Herkunft der 3 baugleichen Sensoren von AliExpress… hier wird im Forum auf mangelhaft Plagiate verwiesen ( Aber das kann ich nicht beurteilen)
Melde mich, sobald ich mehr weiß (komme erst Freitag wieder dazu)
Bis dahin Ahoi
Euer Peter

Hallo, bin nicht ganz sicher was alles schon geschrieben wurde.
… hatte auch ein wenig Startschwierigkeiten.
Habe 5x DS18B20 am ESP8266 - alle am Pin D4=GPIO2.
Code ist, und läuft alles normal
Zu Beginn die Adresse heraus lassen, und dann beim neuen Flashen aus dem log holen… hoffe es hilft - gutes Durchstehvermögen :slight_smile:
wem’s interessiert: Genauigkeit ist super:
Soll 20,40°C
Ist: 20,31 20,38 20,56 20,35 20,25°C

image

…und dann halt so weiter… bis 5

Danke dir @HansM. Das baut mich etwas auf. Ich versuch’s nochmal.
Eine Bitte: könntest du deinen ESP-Home Code kopieren und über die “Zitatfunktion” einfügen? (Dann komm ich beim abtippen mit meinen Stoppelfingern nicht in die Quere :slight_smile: ) Vielen Dank !!!
Neuer Versuch, neues Glück… ich melde mich :v:
Peter

Hallo Pete,
kannst Du mir sagen wie das geht … mache auch erst seit 2-3 Wochen HA
Danke
Hans

Hallo Hans,
ich stolpere da auch rein :slight_smile:
Aber nutze die Funktion wie folgt:

Auf der rechten Seite siehst du dann sofort, wie’s später aussieht.
Viel Erfolg :v:

1 „Gefällt mir“
captive_portal:
  
one_wire:
  - platform: gpio
    pin: GPIO2
sensor:
  - platform: dallas_temp
    name: "T01"
    address: 0x8894947d0a646128
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 5s
  - platform: dallas_temp
    name: "T02"
    address: 0x8700687c0a646128
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 5s
  - platform: dallas_temp
    name: "T03"
    address: 0x786eb07d0a646128
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 5s
  - platform: dallas_temp
    name: "T04"
    address: 0x8894947d0a646128
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 5s
  - platform: dallas_temp
    name: "T05"
    address: 0x70f2e8710a646128
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 5s

Hey super - bist ja schon weiter als ich :slight_smile:
:PS Ich möchte ja den ESP mit einem Li Akku 18650 speisen, und als das Modul über WLAN und Akku lief kam Fehlermeldung … irgendwas mit skratch und fehlende Rückmeldung… oder so…
…ich dachte das WLAN funktioniert nicht richtig - aber der Akku war ein wenig zu schwach, mit dem vollen ist es dann ohne Fehler gelaufen.
Messfrequenz kannst Du dann ja runter drehen auf 1-2 min …da habs nur zum Testen auf 5sec.
Viel Glück . .wenns mal läuft ist es echt toll
Hans

1 „Gefällt mir“

Hallo Hans,
du bringst mich auf Ideen (mobiler Einsatz … :wink:).
Ich würd mich freuen, wenn die Sensoren überhaupt erstmal funktionieren.
Mal schauen: Bescherung ist erst morgen :smile:

Hat geklappt :bouquet:

  1. 3,3V + 4,7k Ohm Widerstand verwendet
  2. Alle Verbindungen gelötet (nicht “geschraubt”)
  3. Sensor Adresse identifiziert
  4. Individuellen Sensor in yaml präzisiert

Ehre wem Ehre gebührt :slight_smile: :arrow_right:@pompom hat mir den Trick gezeigt

Welchen Einfluß auf den Erfolg Pkt (1) hat, kann ich nicht genau sagen.
Aber es hat alles geholfen.

Es bleiben noch ein paar gelegentliche Lesefehler, die ich mir nicht erklären kann. Aber vielleicht hat da jemand noch eine Idee?

Bis dahin alles Gute an euch
Peter

Moin Moin zusammen,

ich greife das Thema nochmal auf.
bei mir wird der DS18B20 am ESP32, oder ESP8266 nicht erkannt, egal was ich probiere, es klappt nicht…
Hat noch jemand eine Idee?
Wiederstand hab ich noch nicht verbaut. Es geht erstmal um einen Sensor mit 3 m Kabellänge.
Sensor ist an D4.

esphome:
  name: 8266-01
  friendly_name: 8266-01

esp8266:
  board: esp01_1m

# Enable logging
logger:
  level: VERY_VERBOSE

# Enable Home Assistant API
api:
  encryption:
    key: "xxx"

ota:
  - platform: esphome
    password: "xxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "8266-01 Fallback Hotspot"
    password: "xxx"

captive_portal:

web_server:
  version: 3

one_wire:
 - id: bus_one
   platform: gpio
   pin:
    number: GPIO2
    mode:
      input: true
      pullup: true


button:
  - platform: restart
    name: "Restart"

Irgendwie bekomme ich das mit dem einfügen nicht …

:crayon:by HarryP:
. Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
. Codezeilen formatiert (bitte immer in </> einbinden)

Ich hab mal einen Artikel gelesen, welcher die Funktionsweise des DS18B20 inklusive Parasitic Power Mode und internem Kondensator, welcher für die Messung aufgeladen wird, erklärt.

Was ich von dem Ganzen behalten habe ist, dass immer ein Widerstand zwischen Datenleitung und positiver Versorgung in Kilo-Ohm Größenordnung benötigt wird, wobei der Wert des Widerstandes in Abhängigkeit von der Anzahl der angeschlossenen Sensoren variieren kann.

Leider scheint es so zu sein, dass aufgrund verschiedener Hersteller, vorkonfektionierter Versionen und unterschiedlicher Bauformen (im vorkonfektioniertem Kabel verbaut, Transistorform, kleine Platine,…) oft nicht ganz klar ist, welcher Widerstand und welche Spannung zu verwenden sind. Wenn keine entsprechende Unterlagen mitgeliefert wurden, dann wird nur ausprobieren helfen.

Ich würde das Pull-UP Geraffel etc. erst einmal weglassen und mit

one_wire:
  - platform: gpio
    pin: D6

beginnen (wobei unter Pin derjenige Pin angegeben wird, an dem die Datenleitung des DS18B20 hängt).

Ich würde mit 3,3V Versorgungsspannung und einem 4,7kOhm Widerstand zwischen Datenleitung und +3,3V starten (Bei vorkonfektionierten Kabeln könnte man mit einem Messgerät mal prüfen, welcher Widerstandswert angezeigt wird, wenn man zwischen Datenleitung und Plus misst).

Anbei mal mein kompletten code.
Zum vergleich

Es handelt sich um einen esp8266 mini d1
mit 3 Sensoreb ds18b20

esphome:
  name:  heizkeller
  friendly_name:  heizkeller

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xy"

ota:
  - platform: esphome
    password: "xy"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Vornachlaufboiler"
    password: "xy"

captive_portal:
# Example configuration entry

one_wire:
    - platform: gpio
      pin: GPIO12

sensor:
  - platform: dallas_temp
    address: 0xab03213152da4228
    name: "Vorlauf HK"
    unit_of_measurement: °C
    accuracy_decimals: 1
  - platform: dallas_temp
    address: 0x80012062ea515a28
    name: "Boiler"
    unit_of_measurement: °C
    accuracy_decimals: 1
  - platform: dallas_temp
    address: 0xc103213189901528
    name: "Rücklauf HK"
    unit_of_measurement: °C
    accuracy_decimals: 1

Gruss

@LutzHB und @Wolfi1 ,

vielen Dank für eure Unterstützung.
Mit dem Widerstand (und meinem geraffel :wink:) hat es nun geklappt.

Danke Gruß Jörg