Ich bin am verzweifeln. Es werden mir leider keine Sensoren angezeigt.
Angeschlossen ist der ESP mit 3,3V und einem 4,7kOhm Widerstand zum GPIO Pin. Dieser ist auf GPIO4 eingestellt. Habe bereits etliche Ports versucht.
Leider werden einfach keine Sensoren angezeigt.
@Schmavi
Ein paar Angaben solltest du schon noch machen, damit dir geholfen werden kann.
Den ESP32 hast du sicher geflasht. Wenn ja, wie und womit? Vermutlich hast du ESPHome genutzt. Dann würde es helfen, wenn du dein Script hier zeigst.
Ich habe mich nach Anleitung von Simon gehalten. Hab das Teil mit ESP Home geflasht und dies dann in die YAML geschrieben.
one_wire:
- id: bus_one
platform: gpio
pin:
number: 4
mode:
input: true
pullup: true
Desweiteren sieht das Logfile dann folgendermaßen aus:
[17:27:39][C][logger:185]: Logger:
[17:27:39][C][logger:186]: Level: DEBUG
[17:27:39][C][logger:188]: Log Baud Rate: 115200
[17:27:39][C][logger:189]: Hardware UART: UART0
[17:27:39][C][gpio.one_wire:020]: GPIO 1-wire bus:
[17:27:39][C][gpio.one_wire:021]: Pin: GPIO4
[17:27:39][W][gpio.one_wire:078]: Found no devices!
[17:27:39][C][mdns:116]: mDNS:
[17:27:39][C][mdns:117]: Hostname: esphome-web-7b23cc
[17:27:39][C][esphome.ota:073]: Over-The-Air updates:
[17:27:39][C][esphome.ota:074]: Address: esphome-web-7b23cc.local:3232
[17:27:39][C][esphome.ota:075]: Version: 2
[17:27:39][C][safe_mode:018]: Safe Mode:
[17:27:39][C][safe_mode:019]: Boot considered successful after 60 seconds
[17:27:39][C][safe_mode:021]: Invoke after 10 boot attempts
[17:27:39][C][safe_mode:022]: Remain in safe mode for 300 seconds
[17:27:39][C][api:140]: API Server:
[17:27:39][C][api:141]: Address: esphome-web-7b23cc.local:6053
[17:27:39][C][api:145]: Using noise encryption: NO
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
Wenn du den Widerstand eingebaut hast, dann lasse das “pullup:true” weg.
Bei mir auf einem D1mini hat es mit
one_wire:
- platform: gpio
id: bus_one
pin: D6
geklappt (wobei man id: bus_one auch weglassen kann, wenn man nur einen Bus verwendet).
In deinem Fall anstelle von “pin: D6” also “pin: GPIO4”.
Das habe ich bereits alles ausprobiert und auch schon den Rest in der YAML weggelassen. Es klappt einfach nicht und er findet keinen Sensor. Hab hier 4 Stück und bereits 3 Stück ausprobiert. Ich habe es vor ein paar Monaten versucht einzurichten und ein Sensor wurde auch gefunden, hatte dann aber keine Zeit mehr mich damit auseinanderzusetzen. Damals ging es auch noch mit dem “Dallas” Eintrag soweit ich mich erinnern kann.
Hab ich gerade versucht. Geht auch nicht.
esphome:
name: esphome-web-7b23cc
friendly_name: Heizung Vorlauf
min_version: 2024.11.0
name_add_mac_suffix: false
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: !Secrets
password: !Secrets
captive_portal:
one_wire:
platform: gpio
pin: GPIO4
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
Mein Code war:
one_wire:
- platform: gpio
id: bus_one
pin: D6
.
.
.
sensor:
#DS18B20
- platform: dallas_temp
address: 0xAAAAAAAAAAAAAAA
name: temperature
update_interval: 5s
aber ohne den Senor-Teil wurde bereits ein Sensor gefunden und die Adresse angezeigt. Der Sensor-Teil ist für die Lieferung der Daten zuständig.
D1Mini, Sensor an 3,3V und Masse angeschlossen, Vom Datenpin eine Leitung zum GPIO Pin und über 4,7kOhm vom Datenpin zu 3,3V.
Bleibt als Fehlerquelle nur, das Masse und 3,3V vertausch wurden. Bei den Sensoren, die wie ein Transistor aussehen kann das leicht passieren…
Als Fehlerquelle kann die Vertauschung ausgeschlossen werden, da ich keinen Sensor hab mit 3 Beinchen, da es der Sensor ist mit Kabel.
Ich hab echt keinen Rat mehr. Hab noch einen zweiten ESP versucht, aber funktioniert auch nicht.
Es handelt sich um das Board hier:
Moin, hab gerade bei meiner “Heizung” nachgesehen. (3 Sensoren - esp8266)
Hab keinen.Widerstand mit drin, geht auch. Bin auf GPIO2 mit allen 3.
Hast schon ohne versucht ?
Grüße
Rolo
Es kann sein, dass der Widerstand bereits im Kabel mit eingelötet ist. Ich würde es auch mal ohne Widerstand probieren. Vielleicht vorher erst mal ein Messgerät zwischen Datendraht und 3,3V Draht anschließen und schauen, ob es einen Widerstand im Bereich von 1-5 kOhm anzeigt. Bei meinem nackten Sensor zeigt das Messgerät keinerlei Widerstand zwischen den Beinen an.
Widerstand gerade rausgemacht. Kein Sensor gefunden.
Vielleicht liegt es am Board? Hat er so automatisch installiert
esp32:
board: esp32dev
framework:
type: esp-idf
Hast du die Pin-Belegung mit der GPIO-Tabelle für dein Board mal gecheckt? Nicht dass du die Signalleitung an einem Pin hast, der nicht nicht deinem GPIO4 entspricht.
Ich nutze für diesen Zweck einen D1 Mini (der eigentlich mehr als ausreichend für den Job ist) und habe noch eine kleine prozentuale Anpassungsmöglichkeit für die Temperatur eingebaut, um die Messungenauigkeit außen am Rohr ein wenig kompensieren zu können (ist aber auch nicht ganz exakt). Hier mal der Code von mir:
one_wire:
- id: bus_one
platform: gpio
pin:
number: 2
mode:
input: true
pullup: true
substitutions:
temp_offset_percent: "15"
# Individual sensors
sensor:
- platform: dallas_temp
address: 0x943ce1d44328fc28
name: "Vorlauf HK1"
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 2
filters:
# - offset: 5.0
- lambda: return x * (1 + ${temp_offset_percent} / 100.0);
- platform: dallas_temp
address: 0xa6505bd446785f28
name: "Rücklauf HK1"
unit_of_measurement: "°C"
icon: "mdi:thermometer-minus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 2
filters:
# - offset: 5.0
- lambda: return x * (1 + ${temp_offset_percent} / 100.0);`Vorformatierter Text`
Ich hab bereits einige GPIO Ports ausprobiert und leider immer denselben Fehler. Wenn es klappen würde, greife ich gerne auf deine überarbeitete YAML zurück. Ich habe das Gefühl, dass der Treiber anscheinend die falsche ESP Firmware aufspielt. Ich bräuchte doch die ESP8266 FW. Er installiert halt automatisch diese ESP32dev als Typ ESP-IDF
Wenn du diesen ESP gekauft hast:
[ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board mit CP2102
dann ist
esp32:
board: esp32dev
framework:
type: esp-idf
richtiger als einen 8266 auszuwählen, der ist wirklich ein ganz andere Typ.
Du könntest noch
esp32:
board: esp32dev
framework:
type: arduino
ausprobieren.
Wenn die Messung zwischen 3,3V Bein und Signalbein keine kOhm Widerstand ergeben hat, dann mit 4,7kOhm Widerstand anschließen…
Hi, hier nochmal meine codes aus meinen boards mit Dallas:
ESP32:
esp32:
board: esp32dev
framework:
type: arduino
...
one_wire:
- platform: gpio
pin: GPIO4
....
sensor:
- platform: dallas_temp
address: 0x39c625700a646128
name: "Sitz"
id: Sitz
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
update_interval: 5s
ESP8266 mit einem Sensor:
esp8266:
board: esp01_1m
....
one_wire:
- platform: gpio
pin: GPIO2
....
sensor:
- platform: dallas_temp
address: 0x11d574730a646128
name: "Aussentemperatur"
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 0
state_topic: "sensors/stallfenster/aussen"
Heizung mit 3 Sensoren an 8266:
esp8266:
board: esp01_1m
....
one_wire:
- platform: gpio
pin: GPIO2
....
sensor:
- platform: dallas_temp
address: 0xd04513700a646128
name: "Vorlauf"
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 0
update_interval: 60s
state_topic: "sensors/heizungtest/vorlauf"
- platform: dallas_temp
address: 0xf6bf7b700a646128
name: "Ruecklauf"
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 0
update_interval: 60s
- platform: dallas_temp
address: 0x6c00b77d0a646128
name: "FBH"
unit_of_measurement: "°C"
icon: "mdi:thermometer-plus"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 0
update_interval: 60s
Um die Adressen zu finden, hatte ich zunächst nur den one_wire Teil drin und habe nach auslesen des Log dann weiter programmiert.
Ich gehe davon aus, dass du das auch so gemacht hast oder ähnlich.
Du hast geschrieben, dass er vor einiger Zeit die Adressen gefunden hat.
Dann geht es doch langsam in Richtung Board oder Sensor defekt…
Ausser, dass esphome bei mir automatisch arduino als framework bei dem esp32 gewählt hat, sehe ich keinen Unterschied.
Habe die Schnipsel hier auch nur eingefügt, damit man sieht, wie es bei mir funktioniert.
Im Umkehrschluss hätte esphome ja auch “meckern” müssen, wenn das mit esp-idf framework nicht gehen sollte.
Es bleibt somit ja meiner Meinung nach nur noch das Board (und wenn die 3,3V zusammenbrechen oder so )oder der Sensor.
Hoffe das hilft.
Grüße
Rolo
Nachtrag: Habe nirgendwo Widerstände mit drin.
Ich habe auch einen halben Tag damit zugebracht, 6 DS18B20-Sensoren an einem ESP-WROOM-32 zum Laufen zu bekommen. Ein einzelner Sensor hat mit “pullup: true” funktioniert. Mehrere Sensoren nicht. Ich habe dann 6 Sensoren an 6 verschiedenen Pins verlötet und jeweils “pullup: true” für die Pins gesetzt. Das Ergebnis war erratisch: Ohne Änderungen wurden mal 2 von 6 nicht gefunden, mal 3, mal 4, mal 5 nicht.
Weil ich keinen 4,7 kOhm-Widerstand hatte, habe ich dann aus einem alten Radio einen 2,7 kOhm-Widerstand ausgelötet und verbaut. Alle 6 Sensoren hängen jetzt an Pin4 und es funktioniert tadellos.
Mein YAML-Code
esp32:
board: esp32dev
framework:
type: arduino
[....]
one_wire:
- id: dallasDs18B20
platform: gpio
pin:
number: GPIO4
mode:
input: true
sensor:
- platform: dallas_temp
id: esp_hwr_sp_oben
address: 0xa900000036241d28
one_wire_id: dallasDs18B20
name: "Pufferspeicher oben"
unit_of_measurement: "°C"
icon: "mdi:thermometer"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 1
update_interval: 30s
[....]
Die Id (hier “dallasDs18B20”) ist im Prinzip irrelevant. Wenn man, wie ich es zwischenzeitlich hatte, 6 mal einen Wirebus an 6 verschiedenen Pins definiert, dann muss der Bus jeweils eine ID bekommen und man bei jedem Sensor via one_wire_id angeben, an welchem Bus er hängt.
Das mit der ID könnte ich noch probieren. Ich versuche es heute Abend mal mit der YAML mit und ohne Widerstand.
Ich habe nun wirklich alles versucht. Hab es mit eingebautem Widerstand und “ohne Pullup=true” versucht, hab es ohne Widerstand in beiden Variationen versucht zum laufen zu bringen. Jeglichen GPIO Port versucht. Hab hier 4x DS1820B Sensorkabel. Alle ausprobiert. Es klappt nicht
Poste doch bitte mal deine ganze yaml, die du jetzt auf dem ESP hast. Es ist mühsam, sich die Bruchstücke zusammen zu suchen.
Vielleicht nochmal kurz zur Einrichtung meines ESP32 Wroom Chips.
Ich nutze ESP Home Builder via Home Assistant. Hier füge ich über den Punkt “New Device” ein neues Gerät hinzu.
Hier öffnet sich ein Fenster (ESPHome Web), wobei ich den Chip über den USB Port verbunden habe (auch passender Windows Treiber) und auf “Prepare for first Use” klicke. Dabei werden alle Daten darauf geschrieben. Danach erscheint die Meldung “Erfolgreich”. Verbinde dann den ESP über meine WLAN SSID & Passwort. Dann geht ein neues Fenster auf und der ESP wird auch direkt über die IP gefunden (ESPHome Web 7b23cc). Was merkwürdig ist, dass der am Anfang neu hinzugefügte ESP Chip nicht Online war. Wenn man dann im ESP Home Builder oben rechts auf die drei Punkte geklickt hat, kann man auf “show discovered devices” klicken und dann erst wurde ein neuer ESP gefunden, der auch “online” war. Diesen kann man mit “Take Control” einrichten. In diese YAML muss man dann händig wieder seine SSID & WLAN Passwort eintragen und updaten. Dann den alten hinzugefügten ESP musste ich immer löschen. Ich habe es gerade erneut versucht und es ist dasselbe Prozedere.
esphome:
name: esphome-web-7b23cc
friendly_name: Heizung Vorlauf
min_version: 2024.11.0
name_add_mac_suffix: false
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
one_wire:
- id: bus_one
platform: gpio
pin:
number: 4
Und das über Validate
Info über Validate des Chips
Vorformatierter Text`INFO ESPHome 2024.12.4
INFO Reading configuration /config/esphome/esphome-web-7b23cc.yaml…
esphome:
name: esphome-web-7b23cc
friendly_name: Heizung Vorlauf
min_version: 2024.11.0
name_add_mac_suffix: false
build_path: build/esphome-web-7b23cc
area: ''
platformio_options: {}
includes: []
libraries: []
esp32:
board: esp32dev
framework:
version: 5.1.5
sdkconfig_options: {}
advanced:
ignore_efuse_custom_mac: false
components: []
platform_version: https://github.com/pioarduino/platform-espressif32.git#51.03.07
source: pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.1.5/esp-idf-v5.1.5.zip
type: esp-idf
flash_size: 4MB
variant: ESP32
logger:
baud_rate: 115200
tx_buffer_size: 512
deassert_rts_dtr: false
hardware_uart: UART0
level: DEBUG
logs: {}
api:
port: 6053
password: ''
reboot_timeout: 15min
ota:
- platform: esphome
version: 2
port: 3232
wifi:
domain: .local
reboot_timeout: 15min
power_save_mode: LIGHT
fast_connect: false
enable_btm: false
enable_rrm: false
passive_scan: false
enable_on_boot: true
networks:
- ssid: XXXXX
password: 'XXXXX'
priority: 0.0
use_address: esphome-web-7b23cc.local
one_wire:
- platform: gpio
id: bus_one
pin:
number: 4
mode:
output: true
input: false
open_drain: false
pullup: false
pulldown: false
inverted: false
ignore_pin_validation_error: false
ignore_strapping_warning: false
drive_strength: 20.0
INFO Configuration is valid!
INFO Upload took 11.23 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.178.164 using esphome API
INFO Successfully connected to esphome-web-7b23cc @ 192.168.178.164 in 4.164s
INFO Successful handshake with esphome-web-7b23cc @ 192.168.178.164 in 0.049s
[17:14:07][I][app:100]: ESPHome version 2024.12.4 compiled on Jan 22 2025, 17:07:18
[17:14:07][C][wifi:600]: WiFi:
[17:14:07][C][wifi:428]: Local MAC: XXXXXX
[17:14:07][C][wifi:433]: SSID: [redacted]
[17:14:07][C][wifi:436]: IP Address: 192.168.178.164
[17:14:07][C][wifi:439]: BSSID: [redacted]
[17:14:07][C][wifi:441]: Hostname: 'esphome-web-7b23cc'
[17:14:07][C][wifi:443]: Signal strength: -54 dB ▂▄▆█
[17:14:07][C][wifi:447]: Channel: 6
[17:14:07][C][wifi:448]: Subnet: 255.255.255.0
[17:14:07][C][wifi:449]: Gateway: 192.168.178.1
[17:14:07][C][wifi:450]: DNS1: 192.168.178.1
[17:14:07][C][wifi:451]: DNS2: 0.0.0.0
[17:14:07][C][logger:185]: Logger:
[17:14:07][C][logger:186]: Level: DEBUG
[17:14:07][C][logger:188]: Log Baud Rate: 115200
[17:14:07][C][logger:189]: Hardware UART: UART0
[17:14:07][C][gpio.one_wire:020]: GPIO 1-wire bus:
[17:14:07][C][gpio.one_wire:021]: Pin: GPIO4
[17:14:07][W][gpio.one_wire:078]: Found no devices!
[17:14:07][C][mdns:116]: mDNS:
[17:14:07][C][mdns:117]: Hostname: esphome-web-7b23cc
[17:14:07][C][esphome.ota:073]: Over-The-Air updates:
[17:14:07][C][esphome.ota:074]: Address: esphome-web-7b23cc.local:3232
[17:14:07][C][esphome.ota:075]: Version: 2
[17:14:07][C][safe_mode:018]: Safe Mode:
[17:14:07][C][safe_mode:019]: Boot considered successful after 60 seconds
[17:14:07][C][safe_mode:021]: Invoke after 10 boot attempts
[17:14:07][C][safe_mode:022]: Remain in safe mode for 300 seconds
[17:14:07][C][api:140]: API Server:
[17:14:07][C][api:141]: Address: esphome-web-7b23cc.local:6053
[17:14:07][C][api:145]: Using noise encryption: NO
[17:14:08][D][api:103]: Accepted 192.168.178.22
[17:14:08][D][api.connection:1446]: Home Assistant 2025.1.3 (192.168.178.22): Connected successfully
by HarryP:
. Zusammenführung Mehrfachpost (bitte “bearbeiten” Funktion nutzen)
. Codezeilen formatiert (bitte immer in </> einbinden)