ESPHome, sensor DS18B20 - plik konfiguracyjny

Cześć, wygrzebałem z szafy cztery sensory DS18B20 i płytkę ESP. Chciałbym to podłączyć do Home Assistanta no i pojawiły się schody.

Jeśli chodzi o płytkę to nie pamiętam co to jest ale jest na niej moduł ESP8266MOD. Tak wygląda:

Na początek żeby było prościej podłączyłem jeden sensor w następujący sposób:

  • żółty do D4
  • czerwony do 3v3
  • niebieski do GND
    Między żółtym a czerwonym dałem opornik 4k7.

Plik konfiguracyjny:

esphome:
  name: esp-ds18b20
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "UPC1234567"
  password: "abcdefghij"

logger:

api:

ota:
  - platform: esphome
  
one_wire:
  - platform: gpio
    pin: GPIO2

sensor:
  - platform: dallas_temp
    name: "Temperatura DS18B20"

W Home Assistancie wchodzę w ESPHome, na płytce klikam LOGS i widzę, że raportuje temperaturę:

INFO ESPHome 2024.7.3
INFO Reading configuration /config/esphome/esphome-web-dd8b4b.yaml...
INFO Starting log output from 192.168.0.87 using esphome API
INFO Successfully connected to esp-ds18b20 @ 192.168.0.87 in 0.005s
INFO Successful handshake with esp-ds18b20 @ 192.168.0.87 in 0.024s
[22:55:38][I][app:100]: ESPHome version 2024.7.3 compiled on Sep 14 2024, 22:43:30
[22:55:38][C][wifi:599]: WiFi:
[22:55:38][C][wifi:427]:   Local MAC: A4:CF:12:DD:8B:4B
[22:55:38][C][wifi:432]:   SSID: [redacted]
[22:55:38][C][wifi:435]:   IP Address: 192.168.0.87
[22:55:38][C][wifi:438]:   BSSID: [redacted]
[22:55:38][C][wifi:440]:   Hostname: 'esp-ds18b20'
[22:55:38][C][wifi:442]:   Signal strength: -73 dB ▂▄▆█
[22:55:38][C][wifi:446]:   Channel: 1
[22:55:38][C][wifi:447]:   Subnet: 255.255.255.0
[22:55:38][C][wifi:448]:   Gateway: 192.168.0.1
[22:55:38][C][wifi:449]:   DNS1: 62.179.1.63
[22:55:38][C][wifi:450]:   DNS2: 62.179.1.62
[22:55:38][C][logger:185]: Logger:
[22:55:38][C][logger:186]:   Level: DEBUG
[22:55:38][C][logger:188]:   Log Baud Rate: 115200
[22:55:38][C][logger:189]:   Hardware UART: UART0
[22:55:38][C][gpio.one_wire:020]: GPIO 1-wire bus:
[22:55:38][C][gpio.one_wire:021]:   Pin: GPIO2
[22:55:38][C][gpio.one_wire:080]:   Found devices:
[22:55:38][C][gpio.one_wire:082]:     0xcb0116004bc1ff28 (DS18B20)
[22:55:38][C][dallas.temp.sensor:029]: Dallas Temperature Sensor:
[22:55:38][C][dallas.temp.sensor:034]:   Address: 0xcb0116004bc1ff28 (DS18B20)
[22:55:38][C][dallas.temp.sensor:035]:   Resolution: 12 bits
[22:55:38][C][dallas.temp.sensor:036]:   Update Interval: 60.0s
[22:55:38][C][mdns:116]: mDNS:
[22:55:38][C][mdns:117]:   Hostname: esp-ds18b20
[22:55:38][C][esphome.ota:073]: Over-The-Air updates:
[22:55:38][C][esphome.ota:074]:   Address: esp-ds18b20.local:8266
[22:55:38][C][esphome.ota:075]:   Version: 2
[22:55:38][C][safe_mode:018]: Safe Mode:
[22:55:38][C][safe_mode:019]:   Boot considered successful after 60 seconds
[22:55:38][C][safe_mode:021]:   Invoke after 10 boot attempts
[22:55:38][C][safe_mode:022]:   Remain in safe mode for 300 seconds
[22:55:38][C][api:139]: API Server:
[22:55:38][C][api:140]:   Address: esp-ds18b20.local:6053
[22:55:38][C][api:144]:   Using noise encryption: NO
[22:56:37][D][dallas.temp.sensor:054]: 'Temperatura DS18B20': Got Temperature=27.3°C
[22:56:37][D][sensor:093]: 'Temperatura DS18B20': Sending state 27.31250 °C with 1 decimals of accuracy
[22:57:37][D][dallas.temp.sensor:054]: 'Temperatura DS18B20': Got Temperature=27.2°C
[22:57:37][D][sensor:093]: 'Temperatura DS18B20': Sending state 27.25000 °C with 1 decimals of accuracy
[22:58:37][D][dallas.temp.sensor:054]: 'Temperatura DS18B20': Got Temperature=33.4°C
[22:58:37][D][sensor:093]: 'Temperatura DS18B20': Sending state 33.37500 °C with 1 decimals of accuracy

Dlaczego tego dziadostwa nie widzę w HA? Szukałem pod nazwami:

  • esp-ds18b20
  • Temperatura DS18B20
  • DS18B20

ale nic takiego nie istnieje. Restartowałem nawet malinę z HA ale to też nie pomogło. Jakieś pomysły?

EDIT: ehh jestem kretynem, nie dodałem tego w integracjach :slight_smile: teraz już widać.

Więc teraz kluczowe pytanie, jak dodać pozostałe 3 sensory? Pod ten sam pin (D4) dać wszystkie? Jak wtedy ogarnąć konfig?

Urządzenie/płytka powinna być w integracjach\esphome.
Wygląda jak nodemcu i tak ją zdefiniowałeś.
w sekcji sensor/ -platform:dallas_temp dodaj:

  - platform: dallas_temp
    name: "Temperatura DS18B20"
    address: 0xcb0116004bc1ff28

Jeśli używałeś płytki w innej konfiguracji i była już w HA to musisz/powinieneś ją usunąć.

1 polubienie

pod jeden pin

sensor:
  - platform: dallas_temp
    name: "Temperatura DS18B20"
    address: 0xcb0116004bc1ff28
    update_interval: 120s
  - platform: dallas_temp
    name: "Temperatura DS18B20 drugi"
    address: 0x<poprawny adres drugiego>
    update_interval: 120s
  - platform: dallas_temp
    name: "Temperatura DS18B20 trzeci"
    address: 0x<poprawny adres trzeciego>
    update_interval: 120s

jeśli pod wiele pinów to musisz zdefiniować więcej magistral 1-wire (na ESP8266 raczej nie polecam więcej niż 2) i przypisać konkretne sensory do magistral na których są podpięte

Pięknie dziękuję za pomoc! Wszystko działa. Udało się to zamknąć w mini pudełku śniadaniowym.



Sensory podłączałem pojedynczo żeby spisać ich adresy ale potem się okazało, że można podłączyć wszystkie naraz i te adresy są widoczne w logach - tylko był komunikat w stylu “nie można wybrać adresu”. Konfig dla potomnych:

esphome:
  name: esp-ds18b20
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "UPC1234567"
  password: "abcdefghij"

logger:

api:

ota:
  - platform: esphome
  
one_wire:
  - platform: gpio
    pin: GPIO2

sensor:
  - platform: dallas_temp
    name: "Temperatura DS18B20 nr 1"
    address: 0xcb0116004bc1ff28
    update_interval: 60s
  - platform: dallas_temp
    name: "Temperatura DS18B20 nr 2"
    address: 0x5d0315b02268ff28
    update_interval: 60s
  - platform: dallas_temp
    name: "Temperatura DS18B20 nr 3"
    address: 0xa6031623e80fff28
    update_interval: 60s
  - platform: dallas_temp
    name: "Temperatura DS18B20 nr 4"
    address: 0x7a021503e347ff28
    update_interval: 60s

2 polubienia