Hilfe bei Fehlersuche benötigt ESPHome

Hallo,

ich möchte meine Midea Portasplit mit der follow-me-Funktion über HA steuern.
Dazu wollte ich dieses Reddit-Projekt umsetzen.
Den ESP kann ich flashen. Aber er meldet sich danach nicht im WLAN an.
Daher habe ich einen Fallback-AP mit eingebaut. Aber auch der wird nicht bereit gestellt.
Wie kann ich weiter mit der Fehleranalyse vorgehen?
Ich hoffe auf eure Ideen.

Also dieses Projekt ( Externes Thermostat mit ESPHome und Follow Me über Infrarot) mit dem ESP8285 ESP-01M IR-Transceiver ?

esphome:
  name: changeme
  friendly_name: changeme

esp8266:
  board: esp01_1m

# Logging reduziert auf INFO. Spart signifikant CPU-Zyklen und RAM-Pufferung.
logger:
  level: INFO
  logs:
    ApplianceBase: ERROR
    AirConditioner: ERROR
    midea: ERROR

api:
  encryption:
    key: "DEIN_API_KEY_HIER"

ota:
  - platform: esphome
    password: "DEIN_OTA_PASSWORT_HIER"

# Schützt vor Boot-Loops und hält den ESP über OTA erreichbar
safe_mode:

wifi:
  ssid: "DEINE_WLAN_SSID"
  password: "DEIN_WLAN_PASSWORT"
  use_address: 192.168.X.X # Statische IP anpassen oder Zeile entfernen
  
  # Netzwerk-Watchdog: Startet den ESP nach 15 Minuten ohne WLAN-Verbindung hart neu
  reboot_timeout: 15min

# ------------------------------------------------------
# 1. Dummy UART (Zwingend für Midea-Komponente, stummgeschaltet)
# ------------------------------------------------------
uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

# ------------------------------------------------------
# 2. IR Transmitter (Receiver ressourcenschonend entfernt)
# ------------------------------------------------------
remote_transmitter:
  id: ir_sender
  pin: GPIO4
  carrier_duty_percent: 50%

# ------------------------------------------------------
# 3. Midea Dummy Climate (Fest an IR-Sender gekoppelt)
# ------------------------------------------------------
climate:
  - platform: midea
    name: "Midea IR Hub Dummy"
    autoconf: false
    transmitter_id: ir_sender  # <-- Zwingt die Komponente, IR zu nutzen
    period: 24h                # Verhindert ständige Abfragen über UART
    num_attempts: 1

# ------------------------------------------------------
# 4. Follow Me Sensor aus Home Assistant (Sofort-Aktion)
# ------------------------------------------------------
sensor:
  - platform: homeassistant
    id: room_temperature_sensor
    # Hier den Helfer oder das echte Thermostat aus HA eintragen:
    entity_id: input_number.midefixtemp 
    internal: true
    # Keine Filter: Jede Änderung in HA löst sofort diese Aktion aus
    on_value:
      - logger.log:
          format: ">>> SOFORT-UPDATE FOLLOW-ME: %.1f °C <<<"
          args: [ 'x' ]
      - midea_ac.follow_me:
          temperature: !lambda "return x;"
          beeper: false

# ------------------------------------------------------
# 5. Heartbeat Timer (hält den Modus alle 2 Minuten aktiv)
# ------------------------------------------------------
interval:
  - interval: 2min
    then:
      - if:
          condition:
            # Sendet nur, wenn der Sensor schon einen echten Wert aus HA geladen hat
            lambda: 'return !isnan(id(room_temperature_sensor).state);'
          then:
            - logger.log:
                format: ">>> HEARTBEAT FOLLOW-ME: %.1f °C <<<"
                args: [ 'id(room_temperature_sensor).state' ]
            - midea_ac.follow_me:
                temperature: !lambda "return id(room_temperature_sensor).state;"
                beeper: false

Ja genau das ist es. Hast du es bei dir am Laufen?

Nein, habe nur zur Hilfestellung den Code mit eingefügt den Du ja hoffentlich auch an Deine Gegebenheiten angepasst hast.

Ach so, verstehe. Ja natürlich habe ich das angepasst. Habe auch zum Test einen AP eingebaut.
Siehe:

esphome:
  name: esp-midea-remote
  friendly_name: esp_midea_remote

esp8266:
  board: esp01_1m

# Logging reduziert auf INFO. Spart signifikant CPU-Zyklen und RAM-Pufferung.
logger:
  level: INFO
  baud_rate: 0 # <-- Hardware serial logging disabled to fix UART clash
  logs:
    ApplianceBase: ERROR
    AirConditioner: ERROR
    midea: ERROR

api:
  encryption:
    key: mein-API-Passwort
ota:
  - platform: esphome
    password: mein-OTA-Passwort

# Schützt vor Boot-Loops und hält den ESP über OTA erreichbar
safe_mode:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  domain: .home

    # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Portasplit Fallback Hotspot"
    password: "GeheimesPasswort"

  # Netzwerk-Watchdog: Startet den ESP nach 15 Minuten ohne WLAN-Verbindung hart neu
  #reboot_timeout: 15min

# ------------------------------------------------------
# 1. Dummy UART (Zwingend für Midea-Komponente, stummgeschaltet)
# ------------------------------------------------------
uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

# ------------------------------------------------------
# 2. IR Transmitter (Receiver ressourcenschonend entfernt)
# ------------------------------------------------------
remote_transmitter:
  id: ir_sender
  pin: GPIO4
  carrier_duty_percent: 50%

# ------------------------------------------------------
# 3. Midea Dummy Climate (Fest an IR-Sender gekoppelt)
# ------------------------------------------------------
climate:
  - platform: midea
    name: "Midea IR Hub Dummy"
    autoconf: false
    transmitter_id: ir_sender  # <-- Zwingt die Komponente, IR zu nutzen
    period: 24h                # Verhindert ständige Abfragen über UART
    num_attempts: 1

# ------------------------------------------------------
# NEW: Toggle Switch for Home Assistant Dashboard
# ------------------------------------------------------
switch:
  - platform: template
    name: "Enable External Temperature"
    id: follow_me_toggle
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    icon: "mdi:thermostat-auto"

# ------------------------------------------------------
# 4. Follow Me Sensor aus Home Assistant (Sofort-Aktion)
# ------------------------------------------------------
sensor:
  - platform: homeassistant
    id: room_temperature_sensor
    entity_id: sensor.midea_active_temperature
    internal: true
    on_value:
      - if:
          condition:
            switch.is_on: follow_me_toggle
          then:
            - logger.log:
                format: ">>> SOFORT-UPDATE FOLLOW-ME: %.1f °C <<<"
                args: [ 'x' ]
            - midea_ac.follow_me:
                temperature: !lambda "return x;"
                beeper: false

# ------------------------------------------------------
# 5. Heartbeat Timer (hält den Modus alle 2 Minuten aktiv)
# ------------------------------------------------------
interval:
  - interval: 2min
    then:
      - if:
          condition:
            and:
              - switch.is_on: follow_me_toggle
              - lambda: 'return !isnan(id(room_temperature_sensor).state);'
          then:
            - logger.log:
                format: ">>> HEARTBEAT FOLLOW-ME: %.1f °C <<<"
                args: [ 'id(room_temperature_sensor).state' ]
            - midea_ac.follow_me:
                temperature: !lambda "return id(room_temperature_sensor).state;"
                beeper: false

Wird auch dieses Teil hier verwendet?

Ja, das ist das Teil, dass hier auf dem Tisch liegt.
Und ehe du fragst: Ja ich habe tunlichst auf den korrekten Anschluss von 5V und GND geachtet.
Ich hatte anfangs nur nicht dran gedacht, dass RX und TX vom Flasher zum ESP gekreuzt sein müssen. Es kam Fehlermeldung, Gerät nicht erreichbar. Nach umstecken (eine Seite RX und TX getauscht) ging es dann.

So sollte es sein. Die eine Seite sendet (TX, transmit) und am anderen Ende der Leitung wird empfangen (RX, receive).
Der reinen Lehre nach muss also immer RX->TX und TX->RX verbunden werden. In der Praxis ist es mittlerweile ein heilloses Durcheinander.

Es ist schön, das wir uns dahingehend austauschen konnten.
Aber ich habe immer noch nicht heraus gefunden, wie ich einkreisen kann, wo der Fehler ist, dass ich das Gerät weder im hinterlegten WLAN, noch seinen eigenen AP sehe.

Irgendwie muss man das doch debuggen können. Im Netz bin ich auch nicht fündig geworden. Ich benutze sicherlich die falschen Suchbegriffe.
Jeder Vorschlag ist willkommen.

Ich würde erst mal den Logger in der Überwachung von Info nach Debug oder Verbose umstellen und schauen.
Hier mal schauen.

warum schaust dem ESP per USB/serial nicht zu was er so von sich gibt?
Ist in vielen Fällen aufschlussreich.

Gruß aus L.E.
Uwe

Es kommt nichts rein. Sonst wäre es zu einfach. Ich schätze, das Ding ist kaputt.

Warum machst Du im Photovoltaikforum weiter und nicht hier?
Wie hängt das zusammen bei Dir FB5690 Pro und der ESP32 erkennt nur das Gastnetz?
Da ist nichts kaputt, es stimmen nur die Netzwerkeinstellungen nicht :wink:

@suedschwede Ich habe dort keinen Thread zu diesem Thema am laufen. Hast du einen Link für mich, vielleicht hat dort jemand eine Lösung die bei mir passt.

Keine Ahnung was du meinst, bei mir wird nicht mal das Fallback-WiFi aufgespannt. Ich habe keine WiFi und auch die serielle Konsole bleibt leer. Nichts, womit ich kontakt mit dem Chip aufnehmen könnte.

Ok, dann habe ich das verwechselt gehabt.
Dann mach einfach mal so, verbinde dich über Deinen Browser (Chrome) mit https://web.esphome.io/ auf den ESP32 und mache mal eine Ersteinrichtung.
Danach dann erst Dein Projekt aufspielen.
Wenn da nichts geht scheint er wirklich defekt zu sein :thinking:




Nach Abschluß der Installation kommt bei mir nur noch das hier:


Es scheint keine Verbindung mit WIFI möglich zu sein. Da ist wohl die Hardware defekt.

wenn du ihn flashen kannst dann geht auch USB/seriell!
Wie gehst du den auf die Console?

minicom -D /dev/ttyUSB0 

evtl.

minicom -D /dev/ttyACM0

Gruß aus L.E.
Uwe

Mit einem Linux-Rechner bekomme ich da keine Kommunikation hergestellt. Muss immer an einem anderen Rechner flashen und wenn ich zu Hause bin kann ich weiter testen. Ist etwas belastend das ganze.
In der ESPHome-App geht nach dem Flash eine Konsole auf, die meldet, es sind keine Meldungen vorhanden. Im unteren Teil das “Fensters” kann man auf die Ausgabe vom WLAN gehen. Dort steht, es findet das hinterlegte WLAN nicht.
Daher habe ich das Fallback-WiFi mit eingebaut um vielleicht den AP vom ESP zu haben. Geht aber auch nicht.

Hast du dein 2,4Ghz Netzwerk aktiviert? Wenn nicht, wird der ESP nie gefunden. Auch nicht von deinem Endgerät, solange es über 5Ghz mit dem Router verbunden ist. Nur so als Anmerkung. Vor diesem Problem stand ich auch schon einmal. Du hast auch in deiner Yaml kein Webif konfiguriert. Das macht, wenn man dann eine Verbindung hat, die weitere Fehlersuche deutlich einfacher.

2,4GHz ist schon klar, das ist ein berechtigter Hinweis. Alle meine WiFi-IOT-Geräte funken auf 2,4GHz.

Wenn man keine Kommunikation hinbekommt, nutzt einem Webif auch nichts
Ich bestelle erst einmal neu und dann wird weiter versucht. Ich werde berichten.

Dank an alle, die versucht haben mir bei der Problemlösung behilflich zu sein.