ESP32 Verbindungprobleme aus der Hölle

Hallo,

Ich habe mir einen ESP32 (ESP 32 Board) zugelegt, um mit einem mmwave Sensor Lichter über HA zu steuern. Simpel, dachte ich. Also ESPhome geflasht über den Serial-USB-C-Port am PC, kurz laufen lassen, innerhalb von 3 Sekunden eine Verbindung zum Netzwerk. Toll, dachte ich. Also ran an einen kleinen Akku und… Nichts. Keine Verbindung. Kabel gewechselt, Stromquellen probiert, nichts. Der ESP verbindet sich NUR, wenn er vom PC (logs) angesteuert wird. Nur mit Strom tut sich nix. Seither habe ich versucht, den Bootprozess zu verzögern, das WLAN erst später anzustellen, Logs komplett abzustellen, nichts hat was gebracht. Ausschließlich wenn die Logs über den PC ausgelesen werden, tut sich was. Das war bei allen 3 ESP32 Boards so. Bin echt am Verzweifeln. Bin dankbar für Tips und Ideen!

esphome:
  name: bedmotion
  friendly_name: BedMotion
  on_boot:
    priority: -100
    then:
      - logger.log: "Booted apparently"
      - delay: 3s
      - output.turn_on: debug_led
      - delay: 500ms
      - output.turn_off: debug_led
      - delay: 500ms
      - output.turn_on: debug_led
      - delay: 500ms
      - output.turn_off: debug_led
  
esp32:
  board: esp32dev
  framework:
    type: arduino

logger:
  level: VERBOSE

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

ota:
  - platform: esphome
    password: "xxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: none
  fast_connect: true
  on_connect:
    then:
      - delay: 4s
      - logger.log: "WiFi connected — LED!"
      - output.turn_on: debug_led
  on_disconnect:
    then:
      - logger.log: "Wifi disconnected unfortunately..."
      - output.turn_off: debug_led

  

  ap:
    ssid: "Bedmotion Fallback Hotspot"
    password: "xxx"

captive_portal:

uart:
  id: ld2420_uart
  tx_pin: GPIO17  #ESP8266 UART_0
  rx_pin: GPIO16  #ESP8266 UART_0
  baud_rate: 115200
  parity: NONE
  stop_bits: 1
  

ld2420:

text_sensor:
  - platform: ld2420
    fw_version:
      name: LD2420 Firmware

sensor:
  - platform: ld2420
    moving_distance:
      name : Moving Distance

binary_sensor:
  - platform: ld2420
    has_target:
      name: Presence

select:
  - platform: ld2420
    operating_mode:
      name: Operating Mode

number:
  - platform: ld2420
    presence_timeout:
      name: Detection Presence Timeout
    min_gate_distance:
      name: Detection Gate Minimum
    max_gate_distance:
      name: Detection Gate Maximum
    gate_select:
      name: Select Gate to Set
    still_threshold:
      name: Set Still Threshold Value
    move_threshold:
      name: Set Move Threshold Value
    gate_move_sensitivity:
      name: Move Calibration Sensitivity Factor
    gate_still_sensitivity:
      name: Still Calibration Sensitivity Factor

button:
  - platform: ld2420
    apply_config:
      name: Apply Config
    factory_reset:
      name: Factory Reset
    restart_module:
      name: Restart Module
    revert_config:
      name: Undo Edits

output:
  - platform: gpio
    pin: 2
    id: debug_led

a)

Hast du es einmal mit einem ganz einfachen Basisscript versucht, in dem nur das nötigste steht?

esphome:
  name: bedmotion
  friendly_name: BedMotion

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:
  level: VERBOSE

api:
  encryption:
    key: "xxx"

ota:
  - platform: esphome
    password: "xxx"

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

Wenn das funktioniert, nach und nach die ganzen Nebensächlichkeiten einfügen und danach den Sensor und nach jedem Schritt testen, ob es funktioniert.

b)

wie versorgst du den ESP? Ist die Spannungsquelle ausreichend stabil und hat auch ausreichend Leistung?

Hi Frank, ja, ich habe zu allererst die Basisversion ohne Sensortralala probiert, auch da das Problem, dass nur eine Verbindung zustande kam, wenn ich die Logs offen hatte (entweder über CLI oder esphome web). Versorgung ist entweder über den 5W USB-C-Port oder ein Raspi-Netzteil.

Auf der Softwareseite bin ich hier dann raus. So viel Einblick hab ich da leider nicht. Mit einer ähnlichen Version funktionieren bei mir alle ESPs. (Außer einem D1 mini, der dauernd Verbindungsabbrüche hat, aber das ist eine andere Sache)

Aber ein 5W-Netzteil kann schon etwas wenig sein. Wobei ein Raspberry-Netzteil, soweit ich weiß, eher 15W hat.

Ja, ich denke, ich muss mich auch damit abfinden, dass das Ding einfach fehlerhaft ist. Komisch bleibt aber, dass alles klappt solange man die Logs offen hat.

Bist Du sicher, dass der WLAN-Empfang an der Stelle auch ausreichend ist?

Ich habe einen ESP, der in meinem Flur absolut keine Verbindung aufbaut, obwohl das Handy an der Stelle besten Empfang hat. Erst nachdem ich näher an die Fritzbox ging, baute der ESP32 eine Verbindung auf.

Es ist die exakt selbe Stelle, das kann es also nicht sein (Logs offen, dann logs zu - Reboot - Verbindung weg)

Ich würde das “fast_connect: true“ erst einmal weg lassen. Soweit ich mich erinnern kann, versucht der ESP sich bei fast connect mit dem ersten Netzwerk zu verbinden, welches er findet und das muss nicht gerade das Beste/Richtige sein.

Alle meine ESPs verbinden sich problemlos mit dem WLAN (bis auf einen D1 Mini, der wahrscheinlich aufgrund von speichermangel temporär Verbindungsprobleme hat).