ESPHome MQTT Nachrichten werden als nicht verfügbar angezeigt

Hallo zusammen,

Ich verwende einen ESP8266 D1Mini zusammen mit den Sensoren BME280 (Temperatur, Luftfeuchte und Luftdruck) und BH1750 (Lichtstärke) in ESPHome unter Home Assistant.
Der ESP8266 wird mit Deep Sleep-Konfiguration betrieben, weil er im Akkubetrieb läuft. Befindet sich der ESP für 3 Minuten im Tiefschlaf wird

“Nicht verfügbar”

in meinem Dashboard bei den Entitäten angezeigt.

Ich verwende die MQTT-Einstellung discovery: true und discovery_retain: true. Aber leider werden die letzten MQTT Nachrichten nicht im Dashboard behalten. Ich würde gerne die letzten Sensorwerte im Dashboard

Meine yaml-Datei:

esphome:
  name: "esp8266-d1mini-wetterstation"
  friendly_name: ESP8266_D1Mini

esp8266:
  board: d1_mini

# Enable logging
logger:

mqtt:
  broker: 192.168.50.10
  username: !secret mqtt_user
  password: !secret mqtt_password
  discovery: true
  discovery_retain: true
  birth_message:
    topic: esp8266-d1mini/status
    payload: online
  will_message:
    topic: esp8266-d1mini/status
    payload: offline

ota:
  - platform: esphome
    password: !secret ota_password

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266-D1Mini Fallback Hotspot"
    password: !secret ap_password 

i2c:
  sda: D2
  scl: D1
  scan: true

sensor:
  # BME280 (Temperatur, Luftfeuchte und Luftdruck)
  - platform: bme280_i2c
    temperature:
      name: "BME280 Temperatur"
      oversampling: 16x
      state_topic: esp8266-d1mini/temperature
      retain: true
    pressure:
      name: "BME280 Luftdruck"
      state_topic: esp8266-d1mini/pressure
      retain: true
    humidity:
      name: "BME280 Luftfeuchtigkeit"
      state_topic: esp8266-d1mini/humidity
      retain: true
    address: 0x76
    update_interval: 60s
  # BH1750 (Lichtstärke)
  - platform: bh1750
    name: "BH1750 Lichtstärke"
    state_topic: esp8266-d1mini/illumination
    retain: true
    address: 0x23
    update_interval: 60s

deep_sleep:
  run_duration: 3min
  sleep_duration: 3min

captive_portal:

Hat jemand eine Idee, wie ich meinen ESP8266 konfigurieren muss bzw. welche Einstellungen ich in HA machen muss?

Der Grund dafür ist in der Deep Sleep Dokumentation beschrieben (4. Absatz):

Gibt es einen speziellen Grund, weshalb du die Daten per MQTT überträgst und nicht nativ?

Wer lesen kann, ist im Vorteil. Danke @Jorge für den Hinweis.
Ich habe gerade meinen ESP8266 komplett aus HA (Geräte, Integrationen, Entitäten) entfernt. Auch aus ESPHome habe ich diesen entfernt und neu eingerichtet (Flashvorgang etc.).

Ich habe die Entitäten meinem Dashboard danach hinzugefügt, aber weiterhin werden die Sensorwerte als “nicht verfügbar” dargestellt, wenn sich der ESP im deep_sleep-Modus befindet. Die Komponente “deep_sleep” wurde nicht nachträglich meiner yaml-Datei hinzugefügt.

Ich habe mich für MQTT entschieden, weil ich davon ausgegangen bis, dass ich
die Einstellung retain: true definitiv für meinen Fall brauche und ich dies mit der nativen Verbindung nicht realisieren kann.
Falls ich hier falsch bin, bitte mich gerne korrigieren! :slight_smile: