Entitäten von ESP8266 nicht erreichbar

Hallo Leute
mein neustes Projekt ist nun fast abeschlossen, wenn nicht noch ein schwerwiegender Fehler vorhanden wäre.
Ich habe über einen ESP8266 meinen Füllstand Sickerschacht angebunden und noch ein paar weitere Entitäten mit angeschlossen.
Sporatisch bekomme ich die Fehlermeldung angezeigt im Dashboard
„Gerät nicht verfügbar“

Gehe ich aber dann auf ESP Home Builder und wähle Logs an meldet sich der ESP einwandfrei.

Starte ich Homeassistant dann neu sind alle Geräte wieder vorhanden.
Der ESP8266 ist wie folgt parametriert.

# ==========================
# I2C-Bus Konfiguration (D1, D2)
# ==========================
i2c:
  sda: GPIO4   # D2 bei NodeMCU
  scl: GPIO5   # D1 bei NodeMCU
  scan: true
  id: bus_a

# ==========================
# ADS1115 (ADC-Erweiterung)
# ==========================
ads1115:
  - address: 0x49
    id: ads1115_49

# ==========================
# OneWire Bus (z. B. DS18B20)
# ==========================
one_wire:
 - id: bus_one
   platform: gpio
   pin:
    number: 03
    mode:
      input: true
      pullup: true
# ==========================
# Binary Sensoren
# ==========================
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO14
      mode: INPUT_PULLUP
      inverted: false
    name: "Füllstand Dekobrunnen MAX erreicht"
    filters:
      - delayed_on: 10ms
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
      inverted: false
    name: "Füllstand Dekobrunnen MIN erreicht"
    filters:
      - delayed_on: 10ms
      - delayed_off: 10ms

  - platform: gpio
    pin:
      number: GPIO13
      mode: INPUT_PULLUP
      inverted: true
    name: "Hauswasserkraftwerk läuft"
    filters:
      - delayed_on: 10ms
      - delayed_off: 10ms

Kann mir jemand einen Tip geben, wo ich noch suchen kann.
Neue ESP sind schon bestellt und sobald sie eintreffen, werde ich ihn versuchsweise austauschen.

Vielen Dank schon in Voraus für eure Tips

Klaus

Edit by Jay: Code bitte immer über die Codefunktion „</>“ im Editor einfügen.

Der RSSI Wert ist gut, die Frage wäre aber wo er sich verbunden hat?
Also z.B. an einem Repeater, der wiederum eine schlechte RSSI zum Router hat und Verbindungsabbrüche hat

Er hat sich an einem Access Point angemeldet.
Der im Mesh Netz über ein LAN Kabel an der FRITZ!Box über eine Switch angeschlossen ist.

Dann ist das ja auch ausgeschlossen :hugs:

Mal die RSSI Werte in HA einbinden und beobachten?
Netzteil vom ESP mal getauscht?

Hast den PowerSave-Modus vom ESP geaktiviert ?

Bei meinen 8266er Projekten habe ich gute Erfahrungen mit einem physischen Pull-Up-Widerstand von 4,7 kOhm an den GPIOs gemacht.

Auch eine statische IP-Adresse hat schonmal geholfen.

Ein schwächelndes Netzteil, wie @Dreckfresse es bereits erwähnte, war auch bei mir mal der Grund für sporadische Ausfälle.

Kannst du den Code mal als vorformatierten Text (</>) zeigen?
image

So Stand der Dinge
Netzteil war es nicht wurde testweise getauscht → brachte nichts
Statische IP wurde vergeben → brachte auch nichts
Jetzt kamen gerade neue ESP 8266 gleich neu gefäscht
und neues Problem taucht auf.



darauf hin wählte ich Konfiguration auf neues Gerät migrieren
+

OK angeklickt

Wie kann ich den Fehler andere MAC Adresse beheben ohne alles
Automationen usw. auch per Hand korrigieren zu müssen.
Der neue ESP erscheint bei bei Geräten

esphome:
  name: fuellstand-schacht-esp8266
  friendly_name: Fuellstand Schacht ESP8266

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "JxzdTk4QhWRl2K9Z+NhteUYRPwHjqcR7gd20bcqmjjc="

ota:
  - platform: esphome
    password: "248135542b26d0791682dfd572480cb5"

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

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.115.61
    gateway: 192.168.115.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Fuellstand-Schacht-Esp8266"
    password: "dVElyckkGWqo"

captive_portal:

# ==========================
# I2C-Bus Konfiguration (D1, D2)
# ==========================
i2c:
  sda: GPIO4   # D2 bei NodeMCU
  scl: GPIO5   # D1 bei NodeMCU
  scan: true
  id: bus_a

# ==========================
# ADS1115 (ADC-Erweiterung)
# ==========================
ads1115:
  - address: 0x49
    id: ads1115_49

# ==========================
# OneWire Bus DS18B20)
# ==========================
one_wire:
 - id: bus_one
   platform: gpio
   pin:
    number: 03
    mode:
      input: true
      pullup: true

# ==========================
# Sensoren
# ==========================
sensor:
  # ---- Wasserstand-Sensor über ADS1115 ----
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 4.096
    name: "Wasserstand Sickerschacht cm"
    id: levelraw
    update_interval: 10s
    unit_of_measurement: "cm"
    accuracy_decimals: 2
    icon: "mdi:car-coolant-level"
    filters:
      - sliding_window_moving_average:
          window_size: 20
          send_every: 20
      - calibrate_linear:
          - 0.0025 -> 0.0
          - 0.0970 -> 10
          - 0.1965 -> 20
          - 0.3113 -> 30
          - 0.41687 -> 40
          - 0.51937 -> 50
          - 0.6255 -> 60
          - 0.7277 -> 70
          - 0.8562 -> 80
          - 0.9475 -> 90
          - 1.04987 -> 100
          - 1.1251 -> 120
          - 1.3496 -> 130
          - 1.4576 -> 140
          - 1.5611 -> 150
          - 1.670  -> 160
          - 1.7695 -> 170
          - 1.8725 -> 180
          - 1.9803 -> 190
          - 2.0847 -> 200
          - 2.1815 -> 210
          - 2.2816 -> 220
          - 2.3953 -> 230
          - 2.5043 -> 240
          - 2.6002 -> 250
          - 2.7125 -> 260
          - 2.8068 -> 270
          - 2.9217 -> 280
          - 3.0306 -> 290
          - 3.1237 -> 300

  # ---- DS18B20 Sensoren ----
  - platform: dallas_temp
    address: 0x603578f21d64ff28
    name: "Temperatur Schacht"
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 20s

  - platform: dallas_temp
    address: 0x96397bf21d64ff28
    name: "Temperatur Pumpe"
    unit_of_measurement: "°C"
    icon: "mdi:thermometer-plus"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2
    update_interval: 20s

# ==========================
# Binary Sensoren
# ==========================
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO14
      mode: INPUT_PULLUP
      inverted: false
    name: "Füllstand Dekobrunnen MAX erreicht"
    filters:
      - delayed_on: 50ms
      - delayed_off: 50ms

  - platform: gpio
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
      inverted: false
    name: "Füllstand Dekobrunnen MIN erreicht"
    filters:
      - delayed_on: 50ms
      - delayed_off: 50ms

  - platform: gpio
    pin:
      number: GPIO13
      mode: INPUT_PULLUP
      inverted: true
    name: "Hauswasserkraftwerk läuft"
    filters:
      - delayed_on: 50ms
      - delayed_off: 50ms

Hier noch der komplette YAML Code ob sich nicht doch darin
der Fehler, das im sporatisch die Verbindung abreißt" ursächlich ist.
Vielen Dank an Alle
Klaus

Pullup - Widerstände, wie oben erwähnt, hast du schon getestet?

Nein Pullup noch nicht, da ich mir nicht vorstellen kann wie
sich das auf Verbindungsabbrüche auswirken kann.

Ausschlussverfahren - mache ich häufig.

Zum besseren Verständnis für mich:
Es fällt kein Gerät (8266) aus, sondern eine Entität wird unavailable, oder?

Das hatte ich auch mal, als ich nach und nach mehrere DS18B20 aongeschlossen habe. Mit dem Pullup-Widerstand war das behoben.

Ausserdem ist der PIN 03 etwas kritisch.
Dieser Pin wird auch für die serielle Kommunikation (Loggen, Flashen) verwendet. Die Verwendung dieses Pins für einen Sensor kann zu Instabilität führen, besonders beim Booten oder wenn die serielle Schnittstelle aktiv ist

Hallo Schorsch
an den Temperatursensoren habe ich den Pullup Widerstand.
Da mit dem PIN 3 hatte ich auch schon im Verdacht
aber leider hat der ESP8266 nicht so viele IO Kanäle.
Ich habe ja schon einige belegt.
Hättest du einen Vorschlag auf welchen ich es noch switchen könnte, um vielleicht so die Ursache zu finden.
Danke erst mal für die vielen Infos
Gruß Klaus

Noch was.
Ja die Entität wird nicht mehr verfügbar

Hallo Leute
alles okey keine Fehler mehr.
Die Ursache des Fehlers lag bei 2 Gründen.

  1. Netzteil war defekt
    5 V brach in unregelmäßigen Abständen zusammen

Neues angeschlossen, dann war es schon besser

  1. GPIO 3 das ist der RXD0 Port auf GPIO 02 geändert
    der Fehler trat bis jetzt nicht mehr auf.

Vielen Dank an alle für eure Tips

Klaus