esphome / esphome/issues

Maximum of 8 Dallas temperature sensors (DS18B20)

Open
#5,477 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
313
Forks
40
PR merge metrics
No merged PRs in 30d

Description

### The problem

Every time I try to use more than eight DS18B20 sensors on a single NodeMCU, ESPHome only reads eight of the temperature values. Even if more sensors are found and definded, they are skipped without an error.

I already tried
- an ESP8266 and ESP32-C3
- to use one or two Pins (currently two)
- an external power supply
- different resistor values

what I already found out is
- all sensors are found, even if there are 10 or more
- there is no error compiling with all sensors defined
- the order of the definition in the “sensor:” section has an influence, but is kind of “random” (you never know, which sensors are skipped)

### Which version of ESPHome has the issue?

2023.12.9

### What type of installation are you using?

Home Assistant Add-on

### Which version of Home Assistant has the issue?

2023.11.0

### What platform are you using?

ESP8266

### Board

nodemcu

### Component causing the issue

ds18b20

### Example YAML snippet

```yaml
dallas:
- pin: GPIO16
update_interval: 10s
id: "dallas_hub_1"
- pin: GPIO12
update_interval: 10s
id: "dallas_hub_2"

sensor:
- platform: dallas
address: 0x380922549a5ffc28
name: "Speicher Anschluss oben"
id: "Speicher_Anschluss_oben"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_1

- platform: dallas
address: 0x5b3c91e3810ff128
name: "Speicher oben"
id: "Speicher_oben"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_1

- platform: dallas
# address: 0x990822538ef4bb28
address: 0xf907225272a26428
name: "Speicher Mitte"
id: "Speicher_Mitte"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_1

- platform: dallas
address: 0x2f08225461938d28
name: "Speicher unten"
id: "Speicher_unten"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_1

- platform: dallas
address: 0xdb3c88e381635728
name: "Trinkwasser oben"
id: "Trinkwasser_oben"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_2

- platform: dallas
address: 0xc8072261514c1a28
name: "Trinkwasser unten"
id: "Trinkwasser_unten"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_2

- platform: dallas
address: 0xa43c190457593628
name: "Zirkulation warm"
id: "Zirkulation_warm"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_2

- platform: dallas
address: 0x323ce904576f1e28
name: "Zirkulation kalt"
id: "Zirkulation_kalt"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_2

- platform: dallas
address: 0x2f08225461938d28
name: "Speicher Anschluss unten"
id: "Speicher_Anschluss_unten"
unit_of_measurement: "°C"
icon: "mdi:water-percent"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
dallas_id: dallas_hub_1
```

### Anything in the logs that might be useful for us?

```txt
[15:46:28][D][dallas.sensor:082]: Found sensors:
[15:46:28][D][dallas.sensor:084]: 0xc8072261514c1a28
[15:46:28][D][dallas.sensor:084]: 0xa43c190457593628
[15:46:28][D][dallas.sensor:084]: 0x323ce904576f1e28
[15:46:28][D][dallas.sensor:084]: 0xdb3c88e381635728
[15:46:28][C][dallas.sensor:089]: Device 'Trinkwasser oben'
[15:46:28][C][dallas.sensor:089]: Device Class: 'temperature'
[15:46:28][C][dallas.sensor:089]: State Class: 'measurement'
[15:46:28][C][dallas.sensor:089]: Unit of Measurement: '°C'
[15:46:28][C][dallas.sensor:089]: Accuracy Decimals: 1
[15:46:28][C][dallas.sensor:089]: Icon: 'mdi:water-percent'
[15:46:28][C][dallas.sensor:097]: Address: 0xdb3c88e381635728
[15:46:28][C][dallas.sensor:098]: Resolution: 12
[15:46:28][C][dallas.sensor:089]: Device 'Trinkwasser unten'
[15:46:28][C][dallas.sensor:089]: Device Class: 'temperature'
[15:46:28][C][dallas.sensor:089]: State Class: 'measurement'
[15:46:28][C][dallas.sensor:089]: Unit of Measurement: '°C'
[15:46:28][C][dallas.sensor:089]: Accuracy Decimals: 1
[15:46:28][C][dallas.sensor:089]: Icon: 'mdi:water-percent'
[15:46:28][C][dallas.sensor:097]: Address: 0xc8072261514c1a28
[15:46:28][C][dallas.sensor:098]: Resolution: 12
[15:46:28][C][dallas.sensor:089]: Device 'Zirkulation warm'
[15:46:28][C][dallas.sensor:089]: Device Class: 'temperature'
[15:46:28][C][dallas.sensor:089]: State Class: 'measurement'
[15:46:28][C][dallas.sensor:089]: Unit of Measurement: '°C'
[15:46:28][C][dallas.sensor:089]: Accuracy Decimals: 1
[15:46:28][C][dallas.sensor:089]: Icon: 'mdi:water-percent'
[15:46:28][C][dallas.sensor:097]: Address: 0xa43c190457593628
[15:46:28][C][dallas.sensor:098]: Resolution: 12
[15:46:28][C][dallas.sensor:089]: Device 'Zirkulation kalt'
[15:46:28][C][dallas.sensor:089]: Device Class: 'temperature'
[15:46:28][C][dallas.sensor:089]: State Class: 'measurement'
[15:46:28][C][dallas.sensor:089]: Unit of Measurement: '°C'
[15:46:28][C][dallas.sensor:089]: Accuracy Decimals: 1
[15:46:28][C][dallas.sensor:089]: Icon: 'mdi:water-percent'
[15:46:28][C][dallas.sensor:097]: Address: 0x323ce904576f1e28
[15:46:28][C][dallas.sensor:098]: Resolution: 12

[17:30:42][D][dallas.sensor:143]: 'Speicher Anschluss oben': Got Temperature=44.0°C
[17:30:42][D][sensor:093]: 'Speicher Anschluss oben': Sending state 44.00000 °C with 1 decimals of accuracy
[17:30:42][D][dallas.sensor:143]: 'Speicher Anschluss unten': Got Temperature=46.0°C
[17:30:42][D][sensor:093]: 'Speicher Anschluss unten': Sending state 46.00000 °C with 1 decimals of accuracy
[17:30:42][D][dallas.sensor:143]: 'Speicher oben': Got Temperature=46.2°C
[17:30:42][D][sensor:093]: 'Speicher oben': Sending state 46.18750 °C with 1 decimals of accuracy
[17:30:42][D][dallas.sensor:143]: 'Speicher Mitte': Got Temperature=46.2°C
[17:30:42][D][sensor:093]: 'Speicher Mitte': Sending state 46.18750 °C with 1 decimals of accuracy
[17:30:43][D][dallas.sensor:143]: 'Trinkwasser oben': Got Temperature=46.3°C
[17:30:44][D][sensor:093]: 'Trinkwasser oben': Sending state 46.31250 °C with 1 decimals of accuracy
[17:30:44][D][dallas.sensor:143]: 'Zirkulation kalt': Got Temperature=25.9°C
[17:30:44][D][sensor:093]: 'Zirkulation kalt': Sending state 25.87500 °C with 1 decimals of accuracy
[17:30:44][D][dallas.sensor:143]: 'Trinkwasser unten': Got Temperature=44.8°C
[17:30:44][D][sensor:093]: 'Trinkwasser unten': Sending state 44.75000 °C with 1 decimals of accuracy
[17:30:44][D][dallas.sensor:143]: 'Zirkulation warm': Got Temperature=41.5°C
[17:30:44][D][sensor:093]: 'Zirkulation warm': Sending state 41.50000 °C with 1 decimals of accuracy
```

### Additional information

![image](https://github.com/esphome/issues/assets/103376348/0ab8251c-a47d-48b4-8977-6ac70dc020cf)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.