ESP Home Dallas in one wire ändern

Hallo,

mit dem aktuellen ESP Home Update muß man ja dallas in one wire ändern.

Auf der Seite

steht als Beispiel

# Example configuration entry
one_wire:
  - platform: gpio
    pin: GPIOXX

Aber was muß man an den einzelnen Sensoren ggfs. noch ändern, wo auch noch

platform: dallas

steht.

Was müßte ich an dem folgenden Code noch ändern, da die Installation so fehlschlägt?

one_wire:
- platform: gpio
    pin: GPIO0
    mode:
      input: true
      pullup: false
  update_interval: 30s 
    
# Individual sensors
sensor:
  - platform: gpio
    address: 0x436cc0d445da7628
    #resolution: 12
    name: "Vorlauf Gasheizung"
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2

Danke und LG Pit

Hi Pit,

one_wire:
- platform: gpio
  pin: GPIO2
  # mode:
    # input: true
    # pullup: true
# update_interval: 60s

# Individual sensors

sensor:
  - platform: dallas_temp
    address: 0x25d666720a646128
    name: "Vorlauf HK1"

so sollte es bei dir auch klappen, nur den GPIO anpassen.
Ich nutze einen D1mini und bei mir hängen die Sensoren an D4=GPIO2

alternative kannst du den one_wire Teil auch so machen:

one_wire:
- platform: gpio
  pin: 
    number: GPIO2
    mode:
      input: true
      pullup: true
# update_interval: 60s

wichtig ist unter sensor noch auf platform “dallas_temp” wechseln.

Grüße

2 „Gefällt mir“

Hallo,

danke, ich konnte es installieren, aber ich bekomme lauter Fehlmeldungen im Log:

11:26:22][W][dallas.temp.sensor:074]: 'Vorlauf Gasheizung' - reading scratch pad failed bus reset
[11:26:22][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:26:22][D][sensor:093]: 'Vorlauf Gasheizung': Sending state nan °C with 2 decimals of accuracy
[11:27:06][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[11:27:07][W][dallas.temp.sensor:074]: 'Rücklauf Gasheizung' - reading scratch pad failed bus reset
[11:27:07][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:27:07][D][sensor:093]: 'Rücklauf Gasheizung': Sending state nan °C with 2 decimals of accuracy
[11:27:14][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[11:27:15][W][dallas.temp.sensor:074]: 'Vorlauf Solarthermie' - reading scratch pad failed bus reset
[11:27:15][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:27:15][D][sensor:093]: 'Vorlauf Solarthermie': Sending state nan °C with 2 decimals of accuracy
[11:27:18][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[11:27:18][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[11:27:19][W][dallas.temp.sensor:074]: 'Außentemperatur' - reading scratch pad failed bus reset
[11:27:19][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:27:19][D][sensor:093]: 'Außentemperatur': Sending state nan °C with 2 decimals of accuracy
[11:27:19][W][dallas.temp.sensor:074]: 'Rücklauf Solarthermie' - reading scratch pad failed bus reset
[11:27:19][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:27:19][D][sensor:093]: 'Rücklauf Solarthermie': Sending state nan °C with 2 decimals of accuracy
[11:27:21][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[11:27:22][W][dallas.temp.sensor:074]: 'Vorlauf Gasheizung' - reading scratch pad failed bus reset
[11:27:22][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[11:27:22][D][sensor:093]: 'Vorlauf Gasheizung': Sending state nan °C with 2 decimals of accuracy

LG Pit

Bei mir funktioniert es problemlos.

Das ist die Ausgabe vom ESPhome-Log von meinem Aquarium:
am Anfang:

[12:47:35][C][gpio.one_wire:016]: GPIO 1-wire bus:
[12:47:35][C][gpio.one_wire:017]:   Pin: GPIO14
[12:47:35][C][gpio.one_wire:080]:   Found devices:
[12:47:35][C][gpio.one_wire:082]:     0xea3c16f6495c9728 (DS18B20)

und etwas später:

[12:48:30][D][dallas.temp.sensor:054]: 'Wassertemperatur': Got Temperature=24.4°C

In meiner yaml steht:

one_wire:
  - platform: gpio
    pin: GPIO14

sensor:
  # DS18b20
  - platform: dallas_temp
    address: 0xea3c16f6495c9728
    name: "Wassertemperatur"
    id: aqua_temp

LG Thomas

Bei mir leider nicht, er findet anscheinend schon die Sensoren nicht.

[16:07:07][C][gpio.one_wire:016]: GPIO 1-wire bus:
[16:07:07][C][gpio.one_wire:017]:   Pin: GPIO0
[16:07:07][W][gpio.one_wire:078]:   Found no devices!
[16:07:07][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[16:07:07][C][dallas.temp.sensor:034]:   Address: 0x0136c6d443e9ab28 (DS18B20)
[16:07:07][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[16:07:07][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[16:07:07][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[16:07:07][C][dallas.temp.sensor:034]:   Address: 0xf544c5d443538328 (DS18B20)
[16:07:07][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[16:07:07][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[16:07:07][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[16:07:07][C][dallas.temp.sensor:034]:   Address: 0x5e763dd443699c28 (DS18B20)
[16:07:07][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[16:07:07][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[16:07:07][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[16:07:07][C][dallas.temp.sensor:034]:   Address: 0x08039dd44370db28 (DS18B20)
[16:07:07][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[16:07:07][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[16:07:07][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[16:07:07][C][dallas.temp.sensor:034]:   Address: 0x5a4741d4439c3d28 (DS18B20)
[16:07:07][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[16:07:07][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[16:07:08][W][component:237]: Component api took a long time for an operation (286 ms).
[16:07:08][W][component:238]: Components should block for at most 30 ms.
[16:07:10][D][api.connection:1375]: Home Assistant 2024.6.3 (192.168.1.151): Connected successfully
[16:07:33][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[16:07:34][W][dallas.temp.sensor:074]: 'Rücklauf Gasheizung' - reading scratch pad failed bus reset
[16:07:34][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[16:07:34][D][sensor:093]: 'Rücklauf Gasheizung': Sending state nan °C with 2 decimals of accuracy
[16:07:39][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[16:07:39][W][dallas.temp.sensor:074]: 'Rücklauf Solarthermie' - reading scratch pad failed bus reset
[16:07:39][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[16:07:39][D][sensor:093]: 'Rücklauf Solarthermie': Sending state nan °C with 2 decimals of accuracy
[16:07:41][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[16:07:42][W][dallas.temp.sensor:074]: 'Vorlauf Solarthermie' - reading scratch pad failed bus reset
[16:07:42][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[16:07:42][D][sensor:093]: 'Vorlauf Solarthermie': Sending state nan °C with 2 decimals of accuracy
[16:07:43][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[16:07:44][W][dallas.temp.sensor:074]: 'Außentemperatur' - reading scratch pad failed bus reset
[16:07:44][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[16:07:44][D][sensor:093]: 'Außentemperatur': Sending state nan °C with 2 decimals of accuracy
[16:07:49][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[16:07:50][W][dallas.temp.sensor:074]: 'Vorlauf Gasheizung' - reading scratch pad failed bus reset
[16:07:50][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[16:07:50][D][sensor:093]: 'Vorlauf Gasheizung': Sending state nan °C with 2 decimals of accuracy
[16:07:53][I][safe_mode:041]: Boot seems successful; resetting boot loop counter

Ich habe die Kabel schon überprüft, ich finde den Fehler nicht.

LG Pit

lass mal den mode teil weg

update_interval: 30s
```gehört in den sensor teil

Danke, ich habe das Update nochmal rückgängig gemacht, dann wurden die Sensoren auch nicht gefunden.

Es war anscheinend ein Kontaktproblem an der Zusammenführung der Kabel.

Die Sensoren werden jetzt alle 5 wieder gefunden,

[18:58:01][C][gpio.one_wire:080]:   Found devices:
[18:58:01][C][gpio.one_wire:082]:     0x5e763dd443699c28 (DS18B20)
[18:58:01][C][gpio.one_wire:082]:     0x436cc0d445da7628 (DS18B20)
[18:58:01][C][gpio.one_wire:082]:     0x5a4741d4439c3d28 (DS18B20)
[18:58:01][C][gpio.one_wire:082]:     0xf544c5d443538328 (DS18B20)
[18:58:01][C][gpio.one_wire:082]:     0x08039dd44370db28 (DS18B20)

allerdings habe ich bei einem Sensor immer noch die folgende Fehlermeldung:

[18:55:24][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[18:55:25][W][dallas.temp.sensor:139]: 'Vorlauf Gasheizung' - Scratch pad checksum invalid!
[18:55:25][W][component:157]: Component dallas_temp.sensor set Warning flag: scratch pad checksum invalid
[18:55:25][D][sensor:093]: 'Vorlauf Gasheizung': Sending state nan °C with 2 decimals of accuracy

Wenn der Sensor aber gefunden wird, kann es ja kein Kontaktproblem am Kabel sein, oder?

EDIT: Ich habe die Lösung gefunden. Aus irgendeinem Grund hatte ich bei dem einen Sensor eine falsche Adresse eingetragen. Mit der richtigen Adresse funktioniert er auch.

LG Pit

Ich löte immer alles und gehe dann mit entsprechenden Steckverbindern nach außen. Im Gehäuse JST und außerhalb Klinke. Vor dem ersten Test wird mit dem Multimeter geprüft. Einmal ohne und einmal mit Stromversorgung. Und gesichert wird mit Heißkleber. Damit habe ich bisher nur gute Erfahrungen gemacht. ESP verbaue ich nicht erst seit Home Assistant. Um die einzelnen kleinen Platinen kommt Schrupfschlauch drum, aber ohne großartig zu schrumpfen.

LG Thomas

Ja, das ist natürlich besser, bei mir war es halt so, daß ich das mit der Temperaturmessung mal ausprobieren wollte, ich hatte dann die Kabel am ESP angelötet und die Sensoren mit WAGO-Klemmen verbunden. Das hat auch funktioniert, und dann war ich zu bequem, alles nochmal neu zu machen.

LG Pit

WAGO-Klemmen sind ein bisschen überdimensioniert. Die Drähte vom Sensor (wenn du die fertig verkabelten mit Metallkappe nimmst) sind sehr dünn. WAGO ist ja eher was für 200V-Leitungen.
Wenn du öfters mal probieren willst, nimm ein Stück Streifenleiter-Platine und löte da beidseitig an den Enden der Streifen Anschlussklemmen für Leiterplatten drauf. Dann kannst du die für sowas nehmen. Einfach mehrere mit verschiedner Anzahl an Klemmen basteln. Dann hast du immer den passenden Verbinder zum testen.
Als “Verteiler” kannst du auch mehrere Klemmen längs auf den Streifen löten.

LG Thomas

1 „Gefällt mir“

Hallo Thomas,

danke für den Tip.

LG Pit

Hello,

ich hatte das selbe Problem. Danke für den Thread, hat mir weitergeholfen.

greetz
charly

Hi, ich habe Fragen :smiley:

  1. Wie muss ich das für den D1 Mini anpassen? Einfach “D4” statt “GPIO2”?
  2. Sind Input, Pullup und Update-Interval hier nicht mehr definiert?
  3. Woher erhalte ich “adress”?

Danke!

Moritz

Wenn du den Mini als board deklariert hast, sollte das gehen mit D4.
Was Pullup betrifft, muss ich passen. Ich benutze ausschließlich nackte ESP und löte die benötigten Pullup- und Pulldown-Widerstände direkt an.
Das Update-Interval kannst du am Sensor einstellen. Nur dort macht es auch Sinn, da du ja an einem Pin mehrere Dallas hängen kannst.
Bei mir sieht das so aus:

 - platform: dallas_temp
    address: 0x..............
    name: "Gewächshaus Lufttemperatur"
    id: garten_gh_ltemp
    update_interval: 2s

 - platform: dallas_temp
    address: 0x..............
    name: "Gewächshaus Bodentemperatur"
    id: garten_gh_btemp
    update_interval: 2s

Zur Info, ich habe inzwischen den Code im Blog-Beitrag zum “Rohr Temperaturen mit Home Assistant überwachen”-Video entsprechende geändert :point_down:

2 „Gefällt mir“

bin eigentlich stiller mit Leser aber leider komme ich ihr nicht mehr weiter vileicht kann mir einer helfen

code

esphome:
  name: heizkeller
  friendly_name: Heizkeller

esp8266:
  board: d1_mini

# Enable logging
logger:
  level: VERY_VERBOSE

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

# Optional: OTA update (wenn du OTA verwenden möchtest)
#ota:
#  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Heizkeller Fallback Hotspot"
    password: "xxxxxxxxxxxxxxxxxxxxxxx"

# Enable captive portal for fallback hotspot
captive_portal:

# 1-Wire Bus Konfiguration
one_wire:
  - id: bus_a
    platform: gpio
    pin: 
      number: GPIO2
#      mode: INPUT_PULLUP

  - id: bus_b
    platform: gpio
    pin:
      number: GPIO15
#      mode: INPUT_PULLUP

# Sensoren
sensor:
  - platform: dallas_temp
    address: 0x113ce1e381578b28
    name: "Vorlauf HK1"
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    one_wire_id: bus_a

  - platform: dallas_temp
    address: 0x9c3ce1e38176d228
    name: "Ruecklauf HK1"
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    one_wire_id: bus_b

das ist die fehler meldung die ich bekomme

[20:25:41][C][logger:185]: Logger:
[20:25:41][C][logger:186]:   Level: DEBUG
[20:25:41][C][logger:188]:   Log Baud Rate: 115200
[20:25:41][C][logger:189]:   Hardware UART: UART0
[20:25:41][C][gpio.one_wire:020]: GPIO 1-wire bus:
[20:25:41][C][gpio.one_wire:021]:   Pin: GPIO12
[20:25:41][W][gpio.one_wire:078]:   Found no devices!
[20:25:41][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[20:25:41][C][dallas.temp.sensor:034]:   Address: 0x113ce1e381578b28 (DS18B20)
[20:25:41][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[20:25:41][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[20:25:41][C][captive_portal:088]: Captive Portal:
[20:25:41][C][mdns:116]: mDNS:
[20:25:41][C][mdns:117]:   Hostname: heizkeller
[20:25:41][C][api:139]: API Server:
[20:25:41][C][api:140]:   Address: heizkeller.local:6053
[20:25:41][C][api:142]:   Using noise encryption: YES
[20:26:08][W][component:170]: Component dallas_temp.sensor cleared Warning flag
[20:26:08][W][dallas.temp.sensor:074]: 'Vorlauf HK1' - reading scratch pad failed bus reset
[20:26:08][W][component:157]: Component dallas_temp.sensor set Warning flag: bus reset failed
[20:26:08][D][sensor:093]: 'Vorlauf HK1': Sending state nan °C with 2 decimals of accuracy

Hallo, ich bin da auch kein Spezialist, aber warum hast Du denn zwei verschiedene GPIOs verwendet? Normal kommen die Sensoren alle an einen Kontakt.
Und im Log steht wieder ein anderer GPIO. Bist Du sicher, daß Du den angezeigten Code auch installiert hast?

LG Pit

ja bin mir ziemlich sicher ^^ genau das ist es ja was mich total verwirrt oO
ja ich weis das man eigentlich beide an einen dran machen kann aber das käst mein innere Mong nicht zu hab jetzt auch mal bus_a auf GPIO12 gerändert
wen nicht kann mir einer mall ein code geben der geht werde das dann Hardware technisch umbauen

ps. geht das abfrage der Sensoren noch wie im Video oder ist das mittlerweile auch anders

Alle an einen Pin z.B GPIO12 mit einem Pullup Widerstand 4.7k auf 3.3v
Gibt doch viele Anleitungen wie das zu machen ist!

Gruss

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

Ich habbe die Temp Messung neu aufgesetzt. dazu habe ich den codesnippet (aktuell) benutzt.
Bekomme folgende Fahlermeldung